Php 我怎样才能让Selenium在我有;暂停“;是通过STDIN吗?
我用铬元素启动硒元素。使用Php 我怎样才能让Selenium在我有;暂停“;是通过STDIN吗?,php,selenium,timeout,Php,Selenium,Timeout,我用铬元素启动硒元素。使用->get()访问网站后,我执行了以下操作 $term = 'o'; while($term != 'x') { echo "\nCommand: "; $term = trim(fgets(STDIN)); echo "\nInputted Command = '".$term."'"; } 现在,如果我让它不放任何东西,会话将超时 从顶部可以看到,我使用了命令 "C:\Program Files (x86)\Java\jre1.8.
->get()
访问网站后,我执行了以下操作
$term = 'o';
while($term != 'x')
{
echo "\nCommand: ";
$term = trim(fgets(STDIN));
echo "\nInputted Command = '".$term."'";
}
现在,如果我让它不放任何东西,会话将超时
从顶部可以看到,我使用了命令
"C:\Program Files (x86)\Java\jre1.8.0_111\bin\java" -jar -Dwebdriver.server.session.timeout=86400 -Dwebdriver.chrome.driver=chromedriver.exe selenium-server-standalone-3.0.1.jar
由于Dwebdriver.server.session.timeout
以秒为单位,因此会话不应超时1000天。但即使我取消了30,也只有1天,如下图所示:
在这两种情况下,由于会话超时,它会关闭为Selenium打开的Chrome窗口。如果我向Selenium发送任何命令,如->get()
将引发异常
它仍然会在30分钟后超时。现在我想,如果我不能让Dwebdriver.server.session.timeout
正常工作(如果它还没有工作),我需要在计时器上添加一些可以在后台运行的东西,以便在Selenium空闲10分钟时保持活动状态,我可以在到达$term=trim(fgets(STDIN))之前触发它
但我不确定什么对Selenium起作用才能使其保持活动状态(因为我认为注入的javascript计时器不起作用)
我知道使用Selenium来编写代码以避免长时间的空闲有点违背了这一点,但它用于从网站上自动下载约6000张图片,或者根据.txt
文件中的内容为wordpress创建草稿帖子
有没有办法让Selenium在通过STDIN“暂停”后不超时?您使用的是哪个浏览器版本?不确定,但请尝试升级您的selenium webdriver jar。@prakashtank抱歉等待。我使用的是Chrome55.0.2883.87M(64位),我已经得到了最新版本的Selenium服务器,但它仍然做着完全相同的事情。在大约30分钟内完成
->get()
后,会话超时,我想这可能会有所帮助@JayminsFakeAccount没有,因为根据我对这个问题的理解,它询问的是脚本执行期间导致的超时。在STDIN
之前等待对我来说毫无意义,因为无法预测我可能无法输入多长时间来继续脚本,并且Selenium不能在运行30分钟后破坏cookie或会话,因为我已经让脚本在没有超时的情况下运行了12小时下载图像。