【问题标题】:OpenQA.Selenium.NoSuchElementException: no such element: Unable to locate element C# Find By ClassOpenQA.Selenium.NoSuchElementException:没有这样的元素:无法找到元素 C# 按类查找
【发布时间】:2021-09-30 08:14:38
【问题描述】:
Message: 
Test method CFSSOnlineBanking.SmokeTests.TransferDisplay threw exception: 
OpenQA.Selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"css selector","selector":"#menuLeftRailContainer > div:nth-child(1) > div:nth-child(3)"}
  (Session info: chrome=91.0.4472.164)

Stack Trace: 
RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse)
RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters)
RemoteWebDriver.FindElement(String mechanism, String value)
RemoteWebDriver.FindElementByCssSelector(String cssSelector)
<>c__DisplayClass23_0.<CssSelector>b__0(ISearchContext context)
By.FindElement(ISearchContext context)
RemoteWebDriver.FindElement(By by)
TransferPage.get_TransferLink() line 22
SmokeTests.TransferDisplay() line 57

我目前正在尝试单击位于 div 内的 href。无论我尝试什么,似乎我都无法点击它。

这是我检查时的元素。

我尝试添加等待我尝试通过 LinkText、PartialLinkText、cssSelector 和 xPATH 进行单击

目前我的 TransferPage 类中有这个:

public IWebElement TransferLink => _driver.FindElement(By.CssSelector("#menuLeftRailContainer > div:nth-child(1) > div:nth-child(3)"));

然后在我的实际测试方法中,我有:

_driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(15);
transferPage.TransferLink.Click();

【问题讨论】:

    标签: c# selenium selenium-webdriver automation mstest


    【解决方案1】:

    你可以试试下面的

    xpath:

    //a[@href='/connect-native/transfer/']
    

    或css选择器

    a[href='/connect-native/transfer/'] 
    

    在代码中:

    public IWebElement TransferLink => _driver.FindElement(By.CssSelector("a[href='/connect-native/transfer/']"));
    

    因为您在代码中使用的 css 选择器看起来有点乱。你确定有 1/1 匹配的元素吗?

    如果这不起作用,您可以在您的网页中查找 iframe 吗?

    【讨论】:

    • 看起来至少该部分没有 iframe,我只是尝试实施其他建议但没有运气......
    • 看起来是一样的 OpenQA.Selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"xpath","selector":"//a[@href ='/connect-native/transfer/']"}
    • 你签入 dom 了吗?是否有 1/1 匹配节点?
    • 我该怎么做?
    • 在 Chrome 中按 F12 -> 转到元素部分 -> 执行 CTRL + F -> 然后粘贴并查看您想要的元素是否突出显示
    猜你喜欢
    • 2021-07-29
    • 1970-01-01
    • 2017-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-27
    • 2021-07-07
    相关资源
    最近更新 更多