如何在Selenium中找到此元素(按下页面上的按钮)?

时间:2015-07-21 03:41:21

标签: java html selenium selenium-webdriver webdriver

我正在尝试按网页上的“网格”类按钮,但我遇到了麻烦。这是HTML:

<li id="prodlist" class="prodtab">
    <span> Products</span>
        <div class="grid" onclick="goToView('productGrid');"></div>
        <div class="list" onclick="goToView('productList')"></div>
</li>

这是我尝试的但它提供了 org.openqa.selenium.NoSuchElementException

driver.findElement(By.xpath("div[contains(@class, 'grid')]")).click();

1 个答案:

答案 0 :(得分:1)

这类问题的解决方案通常是切换到iframe ,如果元素在其中:

WebElement frame = driver.findElement(by.cssSelector("iframe.ajaxStoreNumberAppendSrc"));
driver.switchTo().frame(frame); 

// then, search for element
driver.findElement(By.xpath("//div[contains(@class, 'grid')]")).click();

或者,使显式等待等待元素出现:

WebDriverWait wait = new WebDriverWait(webDriver, 5);
wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//div[contains(@class, 'grid')]")));