当前位置: 首页 > 知识库问答 >
问题:

Selenium不在打开新选项卡的单击之后

东方建修
2023-03-14

所以问题是,selenium在page1中搜索特定的项目。然后它点击它,根据网站的设计,它在一个新的标签中打开page2。如何让selenium跟随单击并在新选项卡上工作?

我虽然使用美丽的汤只是复制从page1的网址,但网站没有显示网址。相反,它显示了获取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个答案

何睿范
2023-03-14

Selenium将选项卡视为窗口,因此通常切换到新窗口/选项卡非常容易:

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

您可能会发现跟踪带有变量的窗口很有帮助:

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)
 类似资料:
  • 因此,我有一个,我想冲浪到新选项卡中,链接是不可点击的,所以当我点击这个链接时,什么也不会发生,这将不起作用(甚至不手动): 这是我的web URL:

  • 我正在处理用于Excel VBA的Selenium Basic Wrapper,但是在单击打开新选项卡的按钮时,我无法让Selenium Web驱动程序将焦点切换到打开的新选项卡上,并关闭原始选项卡。我相信使用Java Selenium应该可以实现这一点,但是有没有办法通过excel VBA上的Selenium基本包装来实现呢? 只需要Selenium将焦点切换到新打开的标签上,并关闭旧的/原始的

  • 所以我试图在我的WebDriver中打开新的标签页。我想这样做,因为打开一个新的WebDriver为每个网站使用PhantomJS约3.5秒,我想要更快... 我使用的是一个多进程python脚本,我希望从每个页面中获取一些元素,因此工作流如下所示:

  • 我想使用Selenium WebDriver和Python在不同的选项卡中打开相当多的URL。 在我的代码中有什么可以改变的地方来让新的URL在new选项卡中打开吗? 谢谢你的帮助!

  • 问题内容: 我想要的是发布需求,然后单击“ openTab”按钮,在新选项卡中打开响应html。无法使用来执行此操作。我认为这可能很简单,但是我找不到办法。 问题答案: 您可以使用$ window服务在此处在控制器中完成所有操作。$ window是全局浏览器对象窗口的包装。 为此,将$ window注入到控制器中,如下所示 重定向到动态路由时效果很好