Selenium找不到元素“a”

时间:2018-04-30 16:58:13

标签: c# selenium-webdriver

The data I want to click

上图。我想点击“否”按钮和复选框,但我无法让它工作,我试过

new WebDriverWait(driver, TimeSpan.FromSeconds(15)).Until(ExpectedConditions.ElementIsVisible((By.CssSelector("button[ng-click=\"modalCancel()\"]"))));

但这都是

3 个答案:

答案 0 :(得分:1)

您的CSS选择器正在查找button类型的元素,而不是a。相反,你需要这样的东西:

a[class='button pill'][ng-click='modalCancel()']

完整:

new WebDriverWait(driver, TimeSpan.FromSeconds(15))
    .Until(ExpectedConditions.ElementIsVisible(
        (By.CssSelector("a[class='button pill'][ng-click='modalCancel()']"))));

答案 1 :(得分:0)

您在.之前缺少button,您的定位器将起作用。此外,您可以使用'代替\"。所以将定位器更改为

By.CssSelector(".button[ng-click='modalCancel()']")

它应该有用。

答案 2 :(得分:0)

@DavidG是正确的,该元素属于<a>类型,并为我们提供了正确的方向,但是我希望得到一些细化,一旦元素被返回,因为您需要调用Click()方法所以我不是使用方法ElementIsVisible(),而是按如下方式实现方法ElementToBeClickable()

new WebDriverWait(driver, TimeSpan.FromSeconds(15)).Until(ExpectedConditions.ElementToBeClickable((By.CssSelector("a.button.pill'[ng-click=\"modalCancel()\"]")))).Click();