在 selenium 中,无法单击错误消息 'OK' 按钮
In selenium, Not able to click on Error msg 'OK' button
我正在尝试使用 selenium 单击“确定”按钮,找不到元素。
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
用 cssSelector 试试这个。
objBrowser.findElement(By.cssSelector("button:contains('Ok')")).click();
将其包含在您的测试代码中
import org.openqa.selenium.Alert;
在打开警报消息的操作之后
试试下面的代码
Alert alert_test = driver.switchTo().alert();
alert_test.accept();
如果它不起作用,请告诉我错误消息。
对于模态弹出窗口window,请尝试以下方法并验证。
在打开警报消息的操作后使用以下代码
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_TAB);
robot.keyRelease(KeyEvent.VK_TAB);
注意: 有时需要几秒钟来识别出现的模态弹出窗口 window 但有时会有点长,所以下面你可以根据需要修改。
Thread.sleep(7000);
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);
text()
只选择当前上下文节点(button
)下的文本子节点。 button
.
中没有包含 OK 的文本节点
您最有可能需要:
By.xpath("//button[contains(span/text(), 'OK')]")
如果元素不是立即可见或不可点击,您需要等待。这通常通过 WebdriverWait 完成:
WebDriverWait wait = new WebDriverWait(webDriver, 3); // 3 seconds at most
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(...));
@Rupesh 和@Artjom B。谢谢
我检查过,你的两个答案都有效。
但真正的问题出在弹出错误消息的按钮上。
所以我在弹出窗口出现的删除按钮之前添加了睡眠,这适用于你的两个答案。
Thread.sleep(1000);
objBrowser.findElement(By.cssSelector("input[Value='Remove']")).click();
objBrowser.findElement(By.xpath("//button[contains(span/text(), 'OK')]")).click();
我正在尝试使用 selenium 单击“确定”按钮,找不到元素。
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
用 cssSelector 试试这个。
objBrowser.findElement(By.cssSelector("button:contains('Ok')")).click();
将其包含在您的测试代码中
import org.openqa.selenium.Alert;
在打开警报消息的操作之后
试试下面的代码
Alert alert_test = driver.switchTo().alert();
alert_test.accept();
如果它不起作用,请告诉我错误消息。
对于模态弹出窗口window,请尝试以下方法并验证。
在打开警报消息的操作后使用以下代码
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_TAB);
robot.keyRelease(KeyEvent.VK_TAB);
注意: 有时需要几秒钟来识别出现的模态弹出窗口 window 但有时会有点长,所以下面你可以根据需要修改。
Thread.sleep(7000);
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);
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(...));
@Rupesh 和@Artjom B。谢谢
我检查过,你的两个答案都有效。
但真正的问题出在弹出错误消息的按钮上。 所以我在弹出窗口出现的删除按钮之前添加了睡眠,这适用于你的两个答案。
Thread.sleep(1000);
objBrowser.findElement(By.cssSelector("input[Value='Remove']")).click();
objBrowser.findElement(By.xpath("//button[contains(span/text(), 'OK')]")).click();