【发布时间】:2018-05-23 17:45:49
【问题描述】:
我有一个从网站获取一些信息的项目。 我想看看chrome窗口里面的进程,所以我不能使用无头浏览器。但有时我想最小化 chrome 窗口。
但是我发现手动最小化chrome窗口后selenium会出错,但有时不会。出错时异常
此时元素不可点击,其他元素会收到点击
会被提升,或者有时 selenium 会停止。
找了半天有人说chrome窗口应该是焦点,不能通过点击窗口标题栏上的'-'来最小化。替代解决方案是:
web.set_window_position(-2000,-2000)
使窗口移出屏幕。
还有人说通过模拟快捷键来最小化窗口。但是我觉得和手动点击'-'是一样的,我错了吗?
我的问题是:
- selenium 真的需要 chrome 窗口不最小化吗?为什么有时候最小化后可以正常运行selenium,有时候不行?
-
如果我使用
set_window_position(-2000,-2000)
要使窗口不可见,然后单击 os 底部的窗口图标(对不起,我不知道它叫什么)。通常单击时,窗口将被最小化。那么对于这个chrome窗口,会不会被认为是最小化窗口而出错呢?
我真的很抱歉我的英语不好。我希望我能清楚地描述我的问题。
环境:
- python 3.6
- 铬 66.0
- 硒 3.11.0
- Windows 服务器 2012
编辑以添加代码:
wait.WebDriverWait(driver,100000).until(EC.visibility_of_element_located((By.ID,'commMgrCompositionMessage')))
textArea = driver.find_element_by_id('commMgrCompositionMessage')
driver.execute_script("arguments[0].value="+"'"+modelStr+"';",textArea)
time.sleep(1)
wait.WebDriverWait(driver,10000).until(EC.presence_of_all_elements_located((By.CSS_SELECTOR,'#sendemail_label')))
allSendMailLabel = driver.find_elements_by_css_selector('#sendemail')
allSendMailLabel = allSendMailLabel[1]
driver.execute_script("arguments[0].click();", allSendMailLabel)
【问题讨论】:
-
在收到 Element not clickable 错误之前,您是否明确移动到包含该元素的页面部分或关闭任何可能阻止它的元素?您绝对应该能够在 Chrome 窗口最小化的情况下运行带有 Chrome 的 Selenium - 我一直这样做。
-
我确定页面是正确的,没有其他元素阻止它,因为我已经运行了 2 个小时,但是当我最小化窗口时,大约 2 分钟后,它出错了。
标签: python google-chrome selenium