我在用户门户网站上有一个“注销”按钮,我不太喜欢。 前端是基因敲除.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)
有人可以帮我吗?
答案 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 才能使所需的元素可点击。