Eck*_*cko 5 python selenium google-chrome
您好,我正在使用 selenium 单击链接,并且通常使用在线 Web 应用程序。
当我单击打开新选项卡并在该新打开的选项卡中执行操作的特定链接时遇到问题。我有这个代码:
friend_link = browser.find_element_by_tag_name('a')
friend_link.click() # this is where new tab is opened
Run Code Online (Sandbox Code Playgroud)
之后网络驱动程序(从我的眼睛)打开到新标签,而我不必打电话
browser.find_element_by_tag_name('body').send_keys(Keys.CONTROL + Keys.TAB)
Run Code Online (Sandbox Code Playgroud)
所以一切都很好。新选项卡在 webdriver 上打开。当我尝试单击新打开的选项卡上的链接时,出现“无元素”异常,这意味着它找不到我要查找的元素。
两个问题:
1) webdriver 是否知道新打开的选项卡已打开并在该选项卡上执行操作?也许我必须告诉它。我试过
main_window = browser.current_window_handle
browser.switch_to_window(main_window)
Run Code Online (Sandbox Code Playgroud)
这应该重新聚焦新打开的标签,但没有运气。
2)有没有办法查看计算机是否知道它在新选项卡上?
检查driver.window_handles它是否返回多个实例,第二个实例应该是新打开的选项卡。用于driver.switch_to_window(instance-id)切换它。见下文:
>>> driver.window_handles
[u'CDwindow-608A7C64-A633-4DEC-B88F-6A2578C47669']
>>> driver.window_handles
[u'CDwindow-608A7C64-A633-4DEC-B88F-6A2578C47669', u'CDwindow-A2A95622-3146-4BF6-9E7A-7A6632A73C86']
>>> driver.current_window_handle
u'CDwindow-608A7C64-A633-4DEC-B88F-6A2578C47669'
>>> driver.switch_to.window("CDwindow-A2A95622-3146-4BF6-9E7A-7A6632A73C86")
>>> driver.current_window_handle
u'CDwindow-A2A95622-3146-4BF6-9E7A-7A6632A73C86'
>>> driver.get("http://www.amazon.com")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4253 次 |
| 最近记录: |