【发布时间】:2017-05-23 07:44:42
【问题描述】:
我有一个点击单选按钮的代码,起初我使用的是 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 sn-p。
<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>
补充编辑:
按钮集如下所示:
如前所述,一个按钮 + 标签块具有以下 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 sn-p。 (请注意,这张桌子已经被清理过了,如果我犯了一些错误,我们深表歉意。)
<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>
【问题讨论】:
-
你能加点
htmlsn-p吗? -
嗨@NarendraRajput,我添加了HTML sn-p。
-
你试过
ExplicitWait吗? -
你试过其他浏览器吗?如果可行,请尝试在 IE 浏览器中将缩放级别设置为 100%。
-
是的,它可以在 Google Chrome 中使用,如上所述。我已经将 IE 设置为 100% 缩放级别。