硒单击后不会打开新标签页

时间:2019-01-11 15:57:19

标签: python selenium

在最长的时间内,我在硒上找不到我在页面上寻找的按钮时遇到了问题。一周后,我有了一个“绝妙的主意”来检查硒正在搜索按钮的URL。对不起,这是错误的URL。

问题是,硒在page1中搜索特定项目。然后单击它,并通过网站设计在新选项卡中打开page2。如何让硒跟随点击并在新标签上工作?

我虽然使用漂亮的汤只复制了page1中的URL,但是网站没有显示URL。而是显示获取网址的函数。这真的很奇怪和令人困惑。 想法?

all_matches = driver.find_elements_by_xpath("//*[text()[contains(., 'Pink')]]")
item = all_matches[0]
actions.move_to_element(item).perform()
item.click()


try:
    print (driver.current_url)
    get_button = driver.find_elements_by_xpath('//*[@id="getItem"]')
except:
    print 'Cant find button'
else:
    actions.move_to_element(get_button).perform()
    get_button.click()

1 个答案:

答案 0 :(得分:3)

Selenium将选项卡与窗口一样对待,因此,通常,切换到新窗口/选项卡很容易:

driver.switch_to.window(driver.window_handles[-1])

使用vars跟踪窗口可能会有所帮助:

main_window = driver.current_window_handle
page2_window = driver.window_handles[-1]
driver.switch_to.window(page2_window)

请注意,当您要关闭新窗口/标签时,必须同时关闭并切换回去:

driver.close()
driver.switch_to.window(main_window)