0

我有位于表格内的单选按钮,例如:

<tr id="radiofield-1080-inputRow">
  <td class="x-form-item-body" id="radiofield-1080-bodyEl" colspan="3">
    <input type="button" id="radiofield-1080-inputEl" class="x-form-field" autocomplete="off">
    <label id="radiofield-1080-boxLabelEl" class="x-form-cb-label">My Label</label>
  </td>
</tr>

我确实通过以下代码找到了输入元素:

xPath = String.format("//tr/td[contains(@id,'%s')][contains(label,'%s')]/label", xType,      text);
webElement = webDriver.findElement(By.xpath(xPath));

isSelected()click()似乎不起作用。你有什么建议吗?

4

4 回答 4

0

在您的定位器代码片段问题中。

使用以下任何定位器

By.cssSelector("input[id*='radiofield-']");

By.id("radiofield-1080-inputEl")

By.xpath("//tr/td[contains(@id,'radiofield-')]/input")
于 2013-04-23T13:14:27.077 回答
0

尝试单击“输入”而不是“标签”。输入的xpath:

"//input[@id='radiofield-1080-inputEl']"

如果输入的 id 不总是相同的,你可以试试这个,输入的位置将基于标签:

//label[text()='My Label']/preceding-sibling::input
于 2013-04-23T20:51:23.223 回答
0

感谢您的所有回答。我的发现得出以下结论:ExtJS 将单选按钮和复选框实现为按钮,因此 selenium isSelected() 不起作用。需要实现 isSelected(),如建议: How to check if extjs checkbox is selected in selenium?

click() 完成工作,因为它是一个按钮。

再次感谢,迈克尔

于 2013-05-01T15:35:47.927 回答
0

有一段时间没有使用 selenium,但从快速谷歌上看,您应该尝试使用 isChecked 和检查/取消检查方法。

这是 Javadoc,但由于某种原因无法获得像样的链接,显然检查 Selenium 对象。如果您使用的是其他版本,或者我误解了某些内容,请见谅。

http://selenium.googlecode.com/git/docs/api/java/index.html

于 2013-04-23T13:07:20.300 回答