我有一个点击单选按钮的代码,起初我使用的是Chrome.使用以下代码:
driver.findElement(By.id("radioButton1"))).click();
Run Code Online (Sandbox Code Playgroud)
我收到了错误:
"org.openqa.selenium.WebDriverException: Element is not clickable at point (411, 675). Other element would receive the click: ..."
Run Code Online (Sandbox Code Playgroud)
做研究,我把代码更改为:
actions.moveToElement(driver.findElement(By.id("radioButton1"))).click().perform();
Run Code Online (Sandbox Code Playgroud)
现在,我正在尝试使用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")));
Run Code Online (Sandbox Code Playgroud)
但都没有效果.第一个只关注按钮,所以我添加了另一个sendKeys,但它不起作用.第二和第三,没有任何反应.
编辑:
添加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>
Run Code Online (Sandbox Code Playgroud)
当我点击单选按钮时,标签会在点击后获得额外的属性.
<label class="w-rdo w-rdo-dsize" bh="RDO" AWMouseDown="true"></label>
Run Code Online (Sandbox Code Playgroud)
附加编辑:
这组按钮看起来像这样:
如前所述,一个按钮+标签块具有以下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>
Run Code Online (Sandbox Code Playgroud)
单击按钮后,相应的标签将获得其他属性:
<label class="w-rdo w-rdo-dsize" bh="RDO" AWMouseDown="true"></label>
Run Code Online (Sandbox Code Playgroud)
似乎AWMouseDown似乎是"正式"点击按钮的触发器.
编辑:
表格的完整HTML代码段.(请注意,如果我提交了一个表,那么该表已经被清理了,所以对于某些错误道歉.)
<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>
Run Code Online (Sandbox Code Playgroud)
尝试使用 JavaScript,如下所示:
WebElement radioBtn1 = driver.findElement(By.id("radioButton1"));
((JavascriptExecutor) driver).executeScript("arguments[0].checked = true;", radioBtn1);
Run Code Online (Sandbox Code Playgroud)
如果您使用 QMetry 自动化框架,您应该创建自定义单选按钮组件,例如您可以使用此类自定义实现覆盖 click 方法。
| 归档时间: |
|
| 查看次数: |
10132 次 |
| 最近记录: |