这是我的HTML片段:
HTML:
<button class="confirm" tabindex="1" style="display: inline-block; background-color: rgb(140, 212, 245); box-shadow: rgba(140, 212, 245, 0.8) 0px 0px 2px, rgba(0, 0, 0, 0.05) 0px 0px 0px 1px inset;">OK</button>
我试图通过Selenium WebDriver单击“确定”按钮,但它给了我:错误:
no such element: Unable to locate element: {"method":"cssselector","selector":"button[class='confirm']"}
当前,我正在Selenium中使用以下代码:
driver.findElement(By.cssSelector("button[class='confirm']"));
答案 0 :(得分:0)
您可以尝试使用以下代码:
//button[text()='OK' and @class='confirm']
但是,请确保此按钮不应出现在任何iframe/frame/frameset
中。
在这种情况下,您必须将Web驱动程序的焦点切换到必需的/特定的iframe/frame/frameset
才能与该按钮交互。
为此,您可以尝试以下代码:
driver.switchTo().frame(arg0)
请注意, arg0 可以是框架编号,框架名称或作为网络元素的框架。< / p>
希望这会有所帮助。
答案 1 :(得分:0)
根据您共享的 HTML ,您需要诱使 WebDriverwait 使所需的元素可点击,并且您可以使用解决方案:
cssSelector
:
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("div.sa-confirm-button-container>button.confirm"))).click();
xpath
:
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//div[@class='sa-confirm-button-container']/button[@class='confirm' and contains(.,'OK')]"))).click();