如何在 NUnit 测试框架上使用 selenium C# 在新的 Chrome 选项卡上打开 url

Posted

技术标签:

【中文标题】如何在 NUnit 测试框架上使用 selenium C# 在新的 Chrome 选项卡上打开 url【英文标题】:How to open a url on a new Chrome Tab using selenium C# over NUnit test framework 【发布时间】:2017-11-28 04:03:46 【问题描述】:

我正在尝试测试单点登录功能;其中我打开了一个 chrome 会话并登录到一个网页。此后,我想在同一浏览器窗口上打开一个新选项卡,并打开先前输入的 url 的另一个扩展名,以验证它是否保留了用户会话。我无法在 chrome 上打开新标签页然后切换焦点 --

这是我尝试过的(我是新手,还在学习中......所以感谢所有帮助/建议)

using OpenQA.Selenium.Chrome;
using NUnit.Framework;
using OpenQA.Selenium.Support.UI;
using System.Collections.Generic;
using System.Web;
using System.Threading.Tasks;

namespace Test

[Binding]
public class XXX

    IWebDriver driver = new ChromeDriver(); 


    public void LoginPage()
    
        driver.Navigate().GoToUrl("http://www.abcd.com/");
    


    public void LoggedIn()
    
        //Entering username & password on Platform login page
        driver.FindElement(By.Id("username")).SendKeys("abcd");
        driver.FindElement(By.Id("password")).SendKeys("XXXX");

        var loginBtn = driver.FindElement(By.CssSelector("input[type='button']"));
        loginBtn.Click();

    


    public void OpenANewBrowserTab()
    
        driver.SwitchTo().ParentFrame();


driver.FindElement(By.CssSelector("body")).SendKeys(Keys.Control + "t");
        driver.Navigate().GoToUrl("http://abcd.com/ux");

    

我遇到了错误--

An exception of type 'OpenQA.Selenium.NoSuchElementException' occurred in 
WebDriver.dll but was not handled in user code

Additional information: no such element: Unable to locate element: 
"method":"css selector","selector":"body"

【问题讨论】:

【参考方案1】:

要获得焦点,请使用此语句。

driver.SwitchTo().ActiveElement();

它与 javascript 语句 document.activeElement 具有相同的语义。如果这对您不起作用。然后作为最后的手段,您始终可以使用 javascript

IJavaScriptExecutor js = (IJavaScriptExecutor)driver;
js.ExecuteScript("var win = window.open('https://www.bing.com', '_blank');
      win.focus();");

【讨论】:

完成了,但仍然无法打开新标签。出现以下错误 - WebDriver.dll 中发生“OpenQA.Selenium.NoSuchElementException”类型的异常,但未在用户代码中处理附加信息:没有这样的元素:无法找到元素:“method”:“css 选择器”, “选择器”:“正文” 无法定位元素:这是定位器问题。您需要再次查看并验证您的定位器。无论如何,我已经编辑了答案并提供了另一个解决方案。 您建议的解决方案非常有效。谢谢@Manmohan_singh

以上是关于如何在 NUnit 测试框架上使用 selenium C# 在新的 Chrome 选项卡上打开 url的主要内容,如果未能解决你的问题,请参考以下文章

如何迭代地运行 nunit 测试

运行 vstest.console.exe 时如何过滤 NUnit 测试

nUnit 和 Azure - 如何从 nUnit 启动 Dev Fabric

如何从 Visual Studio 以调试模式运行 NUnit?

哪个免费的C#单元测试框架? [关闭]

NUnit3 测试不在 TFS 构建上运行