[英]In selenium, Not able to click on Error msg 'OK' button
我正在嘗試使用硒單擊“確定”按鈕,找不到elememt。
objBrowser.findElement(By.xpath("//button[contains(text(), 'OK')]")).click();
確定按鈕檢查元素代碼如下
<button class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" role="button" aria-disabled="false" jQuery15109548211953493255="16">
<span class="ui-button-text"> Text - OK
text()
僅選擇當前上下文節點( button
)下的文本子節點。 在button
沒有包含“確定”的文本節點。
您最有可能需要:
By.xpath("//button[contains(span/text(), 'OK')]")
如果該元素不是立即可見或不可單擊的,則需要等待它。 這通常通過WebdriverWait完成:
WebDriverWait wait = new WebDriverWait(webDriver, 3); // 3 seconds at most
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(...));
嘗試使用cssSelector。
objBrowser.findElement(By.cssSelector("button:contains('Ok')")).click();
將其包含在您的測試代碼中
import org.openqa.selenium.Alert;
在打開警報消息的操作之后
試試下面的代碼
Alert alert_test = driver.switchTo().alert();
alert_test.accept();
如果無法正常工作,請告訴我錯誤消息。
對於模式彈出窗口 ,請嘗試以下方法並進行驗證。
在打開警報消息的操作之后使用以下代碼
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_TAB);
robot.keyRelease(KeyEvent.VK_TAB);
注意: 有時需要幾秒鍾才能識別出當前的模式彈出窗口,但有時又要花一些時間,因此您可以根據需要修改以下時間。
Thread.sleep(7000);
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);
@Rupesh和@Artjom B.謝謝
我檢查了一下,您的答案都起作用了。
但是真正的問題是出現錯誤消息的按鈕。 所以我在出現彈出窗口的刪除按鈕之前添加了睡眠,這與您的兩個答案都一樣。
Thread.sleep(1000);
objBrowser.findElement(By.cssSelector("input[Value='Remove']")).click();
objBrowser.findElement(By.xpath("//button[contains(span/text(), 'OK')]")).click();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.