我可以在硒运行时最小化铬窗口吗?

时间:2018-05-23 17:45:49

标签: python google-chrome selenium

我有一个项目可以从网站上获取一些信息。 我想看一下chrome窗口里面的过程,所以我不能使用无头浏览器。但有时我想最小化铬窗口。

但是我发现在手动最小化铬窗口后硒会出错,但有时候不会。出错时,例外

  

元素在该点不可点击,其他元素将接收点击

将被提升,或者有时硒会停止。

我已经搜索了很长时间,有些人说应该关注镀铬窗口,并且不能通过点击' - '在窗口标题栏上。替代解决方案是:

  

web.set_window_position(-2000,-2000)

使窗口移出屏幕。

有人说通过模拟快捷方式来最小化窗口。但我认为它与点击相同 - ' - '手动,我错了吗?

我的问题是:

  • 硒真的需要镀铬窗口没有最小化吗?为什么有时它会在最小化后正常运行硒但有时不会?
  • 如果我使用

      

    set_window_position(-2000,-2000)

    移动窗口不可见,然后我点击操作系统底部的窗口图标(对不起,我不知道它叫什么)。通常,单击时,窗口将最小化。对于这个镀铬窗口,是否会将其视为最小化窗口并出错?

我真的很抱歉我的英语不好。我希望我能清楚地描述我的问题。

环境:

  • python 3.6
  • chrome 66.0
  • selenium 3.11.0
  • Windows Server 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)

1 个答案:

答案 0 :(得分:1)

如果您在此处Debugging "Element is not clickable at point" error看到问题,则chromedriver中存在导致此问题的错误。它的问题是here创建的。第27条评论中列出了一种解决方法,但您可以做的是切换到firefox驱动程序,看看是否有效。最小化窗口不应该导致问题。