如何选择最后一个单选按钮?

时间:2015-11-25 09:17:02

标签: selenium selenium-webdriver automated-tests ui-automation

我有一个验证页面,可以通过selenium webdriver自动化进行测试。在验证页面上总有三个问题。 但是这些问题是从一组问题中选出的,因此对于单个用户来说,每次单独进入验证页面时都会出现不同的问题。 所以说我的池中有20个问题,每个问题有五个选项(无线电答案),因此有100个单独的单选按钮,每个按钮在DOM中都有单独的id / name。 我无法自动化这个网页。 为了继续进行测试,我需要始终为三个问题中的每一个选择最后一个单选按钮。

最后一个收音机总是包含"无"或者"从不"在标签文本和广播文本标签中是可点击的。 名称定位器也始于" 1402248"对于每个单选按钮。 我在我的项目中使用Page对象模型。 有人可以帮我理解如何识别每个无线电广播?

我正在使用它:

@FindBy (xpath = "//*[@class='radio']//a[contains(text(),'never') or contains(text(),'None')]")
protected WebElement oVerifyIdentityFirstAnswer;

2 个答案:

答案 0 :(得分:0)

此CSS选择器应在父元素

中找到所有类型的最后一个单选按钮
driver.findElements(By.cssSelector("input[type='radio']:last-of-type"))

如果您的单选按钮都是单独封装的,请将最后一个类型移动到该容器元素:

driver.findElements(By.cssSelector("a:last-of-type" > input[type='radio']))

这将返回一个WebElement列表,您可以迭代它并单击每个条目。顺便说一句,我不会使用@FindBy注释,因为它经常会导致陈旧性异常。

答案 1 :(得分:0)

尝试将Xpath更改为:

xpath = "//*[@class='radio']//a[contains(text(),'never') or contains(text(),'None')][last()]"