我有一个验证页面,可以通过selenium webdriver自动化进行测试。在验证页面上总有三个问题。 但是这些问题是从一组问题中选出的,因此对于单个用户来说,每次单独进入验证页面时都会出现不同的问题。 所以说我的池中有20个问题,每个问题有五个选项(无线电答案),因此有100个单独的单选按钮,每个按钮在DOM中都有单独的id / name。 我无法自动化这个网页。 为了继续进行测试,我需要始终为三个问题中的每一个选择最后一个单选按钮。
最后一个收音机总是包含"无"或者"从不"在标签文本和广播文本标签中是可点击的。 名称定位器也始于" 1402248"对于每个单选按钮。 我在我的项目中使用Page对象模型。 有人可以帮我理解如何识别每个无线电广播?
我正在使用它:
@FindBy (xpath = "//*[@class='radio']//a[contains(text(),'never') or contains(text(),'None')]")
protected WebElement oVerifyIdentityFirstAnswer;
答案 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()]"