gpt4 book ai didi

java - 无法使用 Selenium 单击div中弹出窗口的按钮

转载 作者:行者123 更新时间:2023-11-29 08:29:14 26 4
gpt4 key购买 nike

我正在尝试单击弹出窗口中的按钮。但是,webdriver 总是抛出 No such element 异常。弹出窗口不是警报,而是在 .它由一条消息和一个 OK 按钮组成。我能够验证/找到消息元素,但无法单击按钮。以下是它的 html 代码。

<div id="yui_patched_v3_11_0_6_1522928024187_16" class="yui3-widget modal yui3-widget-positioned yui3-widget-stacked yui3-widget-modal yui3-resize" style="width: 95%; left: 334px; top: 167px; z-index: 0;" tabindex="0">
<div id="yui_patched_v3_11_0_6_1522928024187_18" class="modal-content yui3-widget-stdmod">
<div class="yui3-widget-hd modal-header">
<div id="yui_patched_v3_11_0_6_1522928024187_112" class="toolbar-content yui3-widget component toolbar">
<button type="button" class="btn close">×</button>
</div>
<h3>Message</h3></div>
<div class="yui3-widget-bd modal-body">
<div class="info-block">
<table width="100%" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td width="127">
<div id="info_image_errorPriceConditioNotSelect" class="info-image restriction-image"></div>
</td>
<td>
<div id="info_content_errorPriceConditioNotSelect" class="info-content">None selected</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="yui3-widget-ft modal-footer">
<div id="yui_patched_v3_11_0_6_1522928024187_153" class="toolbar-content yui3-widget component toolbar">
<button type="button" class="btn yui3-widget btn-content btn-focused" id="yui_patched_v3_11_0_6_1522928024187_500">OK</button>
</div>
</div>
</div>
<div class="yui3-resize-handles-wrapper">
<div class="yui3-resize-handle yui3-resize-handle-br">
<div class="yui3-resize-handle-inner yui3-resize-handle-inner-br">&nbsp;</div>
</div>
</div>
</div>

下面是我尝试访问按钮的代码:-

driver.switchTo().activeElement();
wait.until(ExpectedConditions.visibilityOf(driver.findElement(By.xpath("//div[starts-with(@id, 'yui_patched_v3_11_')]//div[@id="info_content_errorPriceConditioNotSelect"]"))));
assertTrue(driver.findElement(By.xpath("//div[starts-with(@id, 'yui_patched_v3_11_')]//div[@id="info_content_errorPriceConditioNotSelect"]")).isDisplayed());
Thread.sleep(5000);

driver.findElement(By.xpath("//button[starts-with(@id,"yui_patched_v3_")][text()='OK']")).click(); //Webdriver throws exception here

我正在使用 selenium 3.9.1 并在 chrome 上执行脚本。
任何帮助将不胜感激。

谢谢,
阿努贾

最佳答案

问题出在 XPATH 上。请尝试以下代码来单击“确定”按钮。

wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//button[text()='OK']")));
wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//button[text()='OK']")));
driver.findElement(By.xpath("//button[text()='OK']")).click();

关于java - 无法使用 Selenium 单击div中弹出窗口的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49672797/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com