您好我使用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)有没有办法看看计算机是否知道它在新标签上?
1 回答
检查
driver.window_handles
如果它返回多个instanc,则第二个应该是新打开的选项卡 . 使用driver.switch_to_window(instance-id)
切换它 . 见下文: