簡體   English   中英

在硒中,無法單擊錯誤消息“確定”按鈕

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM