【问题标题】:Selenium Webdriver failed when use window_handles使用 window_handles 时 Selenium Webdriver 失败
【发布时间】:2016-10-04 09:15:53
【问题描述】:

我正在尝试使用 Chrome 作为浏览器处理 Python Selenium webdriver 中的两个选项卡。

如果我将 Chrome 浏览器保留为选定窗口,我将通过第一个选项卡和第二个选项卡上的链接文本获得查找元素的结果。[即前屏幕进程]

当我使用

将控件更改为新标签时
driver.switch_to_window(driver.window_handles[1])

并最小化谷歌浏览器[即,如果我选择谷歌浏览器以外的任何进程]。我在查找链接文本时出错,提示 Element Not Found Exception 仅用于第二个选项卡,而不是在第一个选项卡上.

我在第一个选项卡上得到结果。

def DriverCreation():
    try:
        Driver = WebBase.initWebScraping(URL)   # Methods visible Driver.driver and Driver.loggerDriverWait = Driver.EC
        print "Driver Creation Successful"
        return Driver
    except:
        print "Driver Initalisation Failed"
        sys.exit(1)
if __name__ == '__main__':
    URL = 'https://www.example.com/'
    Driver = DriverCreation() # will Load first Tab with www.Example.com
    aboutlink = Driver.driver.find_element_by_link_text('about')
    aboutlink.send_keys(Keys.CONTROL + Keys.RETURN)
    Driver.driver.switch_to_window(Driver.driver.window_handles[1])
    contactLink =  Driver.driver.find_element_by_link_text('contact')
    print contactLink.text()  #** getting error if i change the focus from Google Chrome and works fine if i keep the window focus on Google Chrome**

【问题讨论】:

  • 您能否添加一些额外的代码,以便我们轻松理解您的问题

标签: python google-chrome selenium selenium-webdriver windows-7


【解决方案1】:

您可以使用以下代码管理标签。

driver.execute_script("window.open('"+url+"', '_blank');")
driver.switch_to_window(driver.window_handles[1])

【讨论】:

  • 当我从谷歌浏览器改变焦点时,脚本会运行吗?
  • 你需要输入你打开新标签的URL。
  • 成功了。在迭代 800 条记录后,chrome 的内存大小增加了很多,几乎 3gb
  • 您可以在某些请求后退出并恢复 chrome,否则您必须管理内存大小
猜你喜欢
  • 2012-02-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-09
  • 2015-04-29
  • 2023-03-17
  • 1970-01-01
  • 1970-01-01
  • 2015-07-27
相关资源
最近更新 更多