当前位置: 首页 > 面试题库 >

使用Selenium在现有浏览器会话中打开新标签

东郭子默
2023-03-14
问题内容

我在C#下面的当前代码打开一个窗口,然后单击按钮后导航到指定的URL。

protected void onboardButton_Click(object sender, EventArgs e)
{
   IWebDriver driver = new ChromeDriver();
   driver.FindElement(By.CssSelector("body")).SendKeys(Keys.Control + "t");
   driver.Navigate().GoToUrl("http://www.google.com")
}

但是我计划导航到的站点具有 单一登录 。如何在 现有浏览器会话中 打开新标签并从中导航?上面的代码似乎无效。


问题答案:

要处理新标签,您应该先切换到该标签。请尝试以下操作:

driver.FindElement(By.CssSelector("body")).SendKeys(Keys.Control + "t");
driver.SwitchTo().Window(driver.WindowHandles.Last());
driver.Navigate().GoToUrl("http://www.google.com")

另外,您可能需要切换回:

driver.SwitchTo().Window(driver.WindowHandles.First());


 类似资料:
  • 我是Python新手,我试图在Debian中使用Selenium,但它不起作用,更具体地说,它似乎处于循环中,什么也没发生。下一个脚本是我使用的测试: 当我中断脚本时,会出现以下文本: 回溯(最近一次通话最后一次): 文件“prueba_parseo.py”,第7行,在browser=webdriver中。Firefox()文件“/usr/local/lib/python2.7/dist pack

  • 有可能让selenium使用TOR浏览器吗?有人有什么代码可以复制粘贴吗?

  • 如何通过Selenium WebDRiver命令在浏览器的同一窗口会话中打开新选项卡?

  • 问题内容: 我的问题如下:如何在不同Java类中的测试中重复使用浏览器会话?我打开了这样的浏览器: 然后,我必须使用一些凭据登录网站,并在登录后想执行其他测试,所以我不想为每个测试都登录,因为我需要进行很多测试并为每个用户登录花十年时间。例如,流程如下所示:登录->推送一些组件->添加一些值->生成报告。在此之后,我想在另一个组件上生成其他报告,但是当我尝试使用它时,将给出一个空指针异常。有任何想

  • 我的代码没有启动浏览器。 项目显示运行了很长时间,但什么也没有发生。我按下print,发现没有执行。 我添加了manifest_vesion,但在每次运行中,它都生成一个新文件,而我再次得到相同的错误。

  • 问题内容: 当测试失败时,运行selenium测试的浏览器将关闭。这在尝试调试时无济于事。我知道我可以选择在发生故障时进行屏幕截图,但是如果没有整个上下文,那将无济于事。在浏览器仍然可用的情况下,我可以回弹并检查发生了什么。 有没有办法使浏览器即使断言失败或找不到元素也保持打开状态? 问题答案: 几周后随机找出来。 启动服务器时,请在末尾使用-browserSessionReuse选项。这将在整个