gpt4 book ai didi

java - Selenium 网络驱动程序 : Click on radio button not working

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:20:09 24 4
gpt4 key购买 nike

我有一个点击单选按钮的代码,起初我使用的是 Chrome。使用以下代码:

driver.findElement(By.id("radioButton1"))).click();

我得到了错误:

"org.openqa.selenium.WebDriverException: Element is not clickable at point (411, 675). Other element would receive the click: ..."

为了研究,我将代码更改为:

actions.moveToElement(driver.findElement(By.id("radioButton1"))).click().perform();

现在,我正在尝试使用 Internet Explorer 驱动程序。但它不执行点击。

我尝试了以下方法:

driver.findElement(By.id("radioButton1")).sendKeys(Keys.ENTER);

actions.moveToElement(driver.findElement(By.id("radioButton1"))).click().perform();

((JavascriptExecutor) driver).executeScript("arguments[0].click()", driver.findElement(By.id("radioButton1")));

但没有一个有效。第一个只关注按钮,所以我添加了另一个 sendKeys,但它不起作用。第 2 和第 3 次,没有任何反应。

编辑:

添加 HTML 片段。

<input name="btn1" class="w-rdo-native" id="radioButton1" type="radio" value="value1" bh="RDOINP" isrefresh="false">
<label class="w-rdo w-rdo-dsize" bh="RDO"></label>

当我点击单选按钮时,标签会在点击时获得一个额外的属性。

<label class="w-rdo w-rdo-dsize" bh="RDO" AWMouseDown="true"></label>

附加编辑:

这组按钮看起来像这样:

enter image description here

如前所述,一个按钮+标签 block 具有以下HTML结构:

<tr>
<td>
<div class="w-rdo-container">
<input name="radioButtons" class="w-rdo-native" id="button1" type="radio" value="button1" bh="RDOINP" isrefresh="false">
<label class="w-rdo w-rdo-dsize" bh="RDO">
</label>
</div>
</td>
<td class="sectionHead">Option 2
</td>
</tr>

单击按钮后,相应的标签会获得一个附加属性:

<label class="w-rdo w-rdo-dsize" bh="RDO" AWMouseDown="true"></label>

似乎 AWMouseDown 似乎是“正式”单击按钮的触发器。

编辑:

表格的完整 HTML 片段。 (请注意,这张 table 已经清理过了,如果我犯了一个错误,我深表歉意。)

<table border="0" cellpadding="0" cellspacing="0" class="a-cptp-tbl">
<tbody>
<tr>
<td>
<div class="w-rdo-container">
<input checked class="w-rdo-native" id="btn1" name="radioBtn" type="radio" value="btn1"><label class="w-rdo w-rdo-dsize"></label>
</div>
</td>
<td class="sectionHead">Option 1</td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td>
<div class="w-rdo-container">
<input class="w-rdo-native" id="btn2" name="radioBtn" type="radio" value="btn2"><label class="w-rdo w-rdo-dsize"></label>
</div>
</td>
<td class="sectionHead">Option 2</td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td>
<div class="w-rdo-container">
<input class="w-rdo-native" id="btn3" name="radioBtn" type="radio" value="btn3"><label class="w-rdo w-rdo-dsize"></label>
</div>
</td>
<td class="sectionHead">Option 3</td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td>
<div class="w-rdo-container">
<input class="w-rdo-native" id="btn4" name="radioBtn" type="radio" value="btn4"><label class="w-rdo w-rdo-dsize"></label>
</div>
</td>
<td class="sectionHead">Option 4</td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td>
<div class="w-rdo-container">
<input class="w-rdo-native" id="btn5" name="radioBtn" type="radio" value="btn5"><label class="w-rdo w-rdo-dsize"></label>
</div>
</td>
<td class="sectionHead">Option 5</td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td>
<div class="w-rdo-container">
<input class="w-rdo-native" id="btn6" name="radioBtn" type="radio" value="btn6"><label class="w-rdo w-rdo-dsize"></label>
</div>
</td>
<td class="sectionHead">Option 6</td>
</tr>
<tr>
<td></td>
</tr>
</tbody>
</table>

最佳答案

尝试像下面这样使用 JavaScript:

WebElement radioBtn1 = driver.findElement(By.id("radioButton1"));
((JavascriptExecutor) driver).executeScript("arguments[0].checked = true;", radioBtn1);

如果您使用 QMetry Automation Framework,您应该创建自定义单选按钮组件,例如您可以在其中使用此类自定义实现覆盖点击方法。

关于java - Selenium 网络驱动程序 : Click on radio button not working,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41541387/

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