我正在尝试按网页上的“网格”类按钮,但我遇到了麻烦。这是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();
答案 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')]")));