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

Selenium-Webdriver Node.js找不到新窗口

阎功
2023-03-14

我正在运行一个selenium-webdriver javascript scraper,它登录到一个站点并单击一个按钮来启动一个新的选项卡/窗口。我正试图切换驱动程序以关注新生成的窗口,但Selenium找不到它。我要看的代码:

driver.sleep(10000).then(function() {
    driver.getAllWindowHandles().then(function(d) {
        console.log(d);
    })
})
[ '287ab61a-b155-46de-a2a6-298e0e98e440' ]

它是原始的浏览器窗口。是什么原因导致硒不能在新窗口上出现?

共有1个答案

逑禄
2023-03-14

这是我在需要切换到新选项卡时使用的:

const tabs = await driver.getAllWindowHandles();
await driver.switchToWindow(tabs[1]);

如果要切换回主选项卡,只需使用tab[0]

 类似资料:
  • 问题内容: 我正在使用Selenium WebDriver来自动化我的公司站点。一方面,Web应用程序通过以下方式打开一个新窗口: 我们正在使用jQuery,尽管我认为这是自定义的。我在测试团队中,不做任何网站开发。无论如何,它使用JavaScript打开一个新窗口。脚本单击此链接后,我需要它附加到新窗口。 问题在于,在IE9中运行时,WebDriver似乎找不到新窗口。这是我用来尝试切换到新窗口

  • 我正在与Selenium WebDriver自动化我的公司网站。有一次,Web应用程序通过以下方式打开一个新窗口: 我们正在使用jQuery,尽管我认为这是定制的。我是测试团队的成员,不做任何网站的开发工作。无论如何,它使用JavaScript打开一个新窗口。脚本单击此链接后,我需要将其附加到新窗口。 问题是WebDriver在IE9中运行时似乎找不到新窗口。下面是我用来尝试切换到新窗口的代码:

  • 问题内容: 我们正在升级到.NET Core,并且我们有一个使用Selenium进行某些任务的爬网引擎。我们使用它,并且在.NET 4.6.1中可以正常工作。 对于.NET Core,我们创建了一个控制台应用程序,并添加了以下软件包: 但是,当我运行代码时,出现以下错误: chromedriver.exe文件在当前目录或PATH环境变量上的目录中不存在。可以从http://chromedriver

  • 我想运行一个selenium测试,当单击旧页面中的按钮时,它是否导航到新页面。然后我想测试当新页面中的按钮被点击时,它是否导航回旧页面。 当我单击第一页上的按钮并检查新页面上的按钮元素是否出现时,测试工作正常。但是当我使用selenium点击第二页上的button元素,检查第一页上的button元素是否已经出现时,它没有找到第一页上的button元素,尽管我第一次使用相同的button元素去第二页

  • 问题内容: 寻找有关如何获得新的“弹出”窗口的帮助,该窗口在单击“登录”按钮后触发显示。 我能够到达显示窗口的时间,但是我不相信我当前用来获取窗口“句柄”的代码是否正常运行。我的情况有所不同,因为我在页面内使用量角器,但是出现的新窗口不是基于角度的,因此当我在该窗口中时,我必须切换为仅使用Selenium WebDriver。(任何人都不知道这种方法是否有问题?) 在下面,您可以找到我用来创建se

  • 使用https://stackoverflow.com/a/32407543/5379015中提供的解决方案,我尝试重新创建相同的查询,但使用编程语法代替API,如下所示: 第一个工作正常,但是结果是