NoSuchElementException:无法找到元素uisng selenium web-driver

时间:2018-01-16 09:57:27

标签: selenium selenium-webdriver

这里我试图使用css选择器find方法单击一个按钮。但它无法找到该元素。所以我试着给时间,但仍然无法点击元素

代码示例 - >

WebDriverWait waitr = new WebDriverWait(driver, 10);
WebElement element = waitr.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("#userTable > tbody > tr:nth-child(3) > td.sorting_1 > div > a")));
element.click();

我的HTML正文如下

<a data-toggle="dropdown" class="mainAnchor" aria-expanded="false">CA05
<span class="caret" style="margin-left:5px;"><span>	</span></span></a>

如果我使用Thread.sleep(1000);而不是等待它工作正常,但我不想使用Thread.sleep.Please帮我解决这个问题

2 个答案:

答案 0 :(得分:1)

要点击文字为CA05的元素,您可以使用以下代码行:

new WebDriverWait(driver, 10).until(ExpectedConditions.elementToBeClickable(By.cssSelector("a.mainAnchor[data-toggle=dropdown]"))).click();

答案 1 :(得分:-1)

您好,您可以使用如下所示的流利。

    static Wait<WebDriver> wait = new FluentWait<WebDriver>(driver)
        .withTimeout(elementWaitTime, SECONDS)
        .pollingEvery(2,SECONDS)
        .ignoring(NoSuchElementException.class);


   WebElement element = wait.until(new Function<WebDriver, WebElement>() {
      public WebElement apply(WebDriver aDriver) {
        driver= aDriver;
        element.click();
        return aDriver.findElement(cssSelector("#userTab a.mainAnchor"));

    }
});