我一直在将Selenium与Python(以及Chrome,带有chromedriver(一起使用,以成功地自动与网站进行交互,但是最近我的脚本停止工作。
我已将其缩小到脚本到达的一行,但随后就没有进一步了 - 然后就没有其他事情发生过。无论我等待多久,都不会给出任何错误。剧本就挂在那里。
台词是这样的:
start_text_area = driver.find_element_by_id('startDate')
经过一些搜索,我认为如果我尝试使用超时可能会有所帮助,所以我尝试了以下代码:
try:
element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.ID, "startDate"))
)
finally:
driver.quit()
但这也有同样的结果:什么也没发生,尽管我等了一会儿。
正如我所说,这直到最近才起作用。我不知道我使用的网站是否发生了变化。
我还应该提到,当我启动网站时,我还会看到一个终端窗口,我看到其中有一条 chromedriver 错误消息。该错误消息是这样的:
[1022/123519.xxx:ERROR:inspector_emulator_agent.cc(477)] Can only enable virtual time for pages, not workers
知道是什么原因导致这种情况,或者我能做些什么吗?
此错误消息...
[1022/123519.xxx:ERROR:inspector_emulator_agent.cc(477)] Can only enable virtual time for pages, not workers
。是Chrome驱动程序和Chrome/Chromium使用的InspectorEmulationAgent::AssertPage()
的Response
。
该函数在 inspector_emulation_agent.cc 中定义为:
Response InspectorEmulationAgent::AssertPage() {
if (!web_local_frame_) {
LOG(ERROR) << "Can only enable virtual time for pages, not workers";
return Response::InvalidParams(
"Can only enable virtual time for pages, not workers");
}
return Response::OK();
当您通过ChromeOptions()
实例--no-sandbox
使用参数时,会出现此错误,如下所示:
options = webdriver.ChromeOptions()
options.add_argument('--no-sandbox')
溶液
- 删除参数
--no-sandbox
将解决问题。 如果您使用的是Windows操作系统,则需要添加参数
--disable-gpu
如下所示:options = webdriver.ChromeOptions() options.add_argument('--disable-gpu')
引用
- Chrome 实例在量角器中运行测试用例后不会关闭