我如何找到被硒敲除隐藏的元素

时间:2018-08-14 09:02:42

标签: selenium selenium-webdriver xpath css-selectors webdriver

我在用户门户网站上有一个“注销”按钮,我不太喜欢。 前端是基因敲除.js,测试框架是硒。

现在,我可以通过ID获得许多元素,但无法获得此注销按钮。 互联网上的许多帮助已经过时了,我无能为力了。

<button name="logout" class="btn btn-primary" data-action="userLogout" data-bind="click: logout" data-i18n="app:modules.localization.generals.button.logout">Abmelden</button>

这是按钮的源代码。

例如,如果我执行这段代码

webDriver.FindElement(By.Id("logout")).Click();

我收到此消息

  

消息:测试方法MyFirstAutomaticTest.UnitTest1.StartPage引发异常:   System.InvalidOperationException:无法单击元素(MoveTargetOutOfBounds)

有人可以帮我吗?

3 个答案:

答案 0 :(得分:0)

您将绑定名称属性作为ID

尝试一下

webDriver.FindElement(By.name("logout")).Click();

答案 1 :(得分:0)

尝试使用xpath

webDriver.FindElement(By.Xpath("//button[text()='Abmelden']")).Click();

答案 2 :(得分:0)

根据您已与元素上的click()共享的 HTML ,文本为 Abmelden ,您可以使用以下任一解决方案:

  • cssSelector

    webDriver.FindElement(By.CssSelector("button.btn.btn-primary[data-action='userLogout']")).Click();
    
  • xpath

    webDriver.FindElement(By.XPath("//button[@class='btn btn-primary' and @data-action='userLogout']")).Click();
    

注意:由于该元素是Angular元素,因此必须诱使 WebDriverWait 才能使所需的元素可点击