gpt4 book ai didi

python - 在 selenium 中切换和聚焦新打开的选项卡

转载 作者:太空宇宙 更新时间:2023-11-03 11:25:25 25 4
gpt4 key购买 nike

您好,我正在使用 selenium 单击链接,并且通常使用在线网络应用程序。

当我单击打开新选项卡并在新打开的选项卡中执行操作的特定链接时遇到问题。我有这段代码:

friend_link = browser.find_element_by_tag_name('a')
friend_link.click() # this is where new tab is opened

之后 webdriver(从我的眼睛)打开新标签,而无需我调用

browser.find_element_by_tag_name('body').send_keys(Keys.CONTROL + Keys.TAB)

所以一切都很好。在 webdriver 上打开新选项卡。当我尝试单击新打开的选项卡上的链接时,出现“无元素”异常,这意味着它无法找到我要查找的元素。

两个问题:

1) webdriver 是否知道打开了一个新打开的选项卡并在该选项卡上执行操作?也许我必须告诉它。我试过了

main_window = browser.current_window_handle
browser.switch_to_window(main_window)

应该重新聚焦新打开的选项卡,但没有成功。

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")

关于python - 在 selenium 中切换和聚焦新打开的选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34948175/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com