我试图创建一个Xpath来单击radioButton。请参阅下面的元素和来自Web的xpath:
Xpath:
/html/body/div[3]/div[2]/form/table/tbody/tr[5]/td[2]/label[1]/input
ELEMENT:
<input type="radio" ng-model="dataRow[column.map]" name="optionsRadios" value="15" class="ng-pristine ng-valid">
答案 0 :(得分:0)
如果您在标签上看到一个名称,那么从一个ID开头开始可能是一个不错的选择。
//input[@name='optionsRadios']
我建议您改用CSS选择器,因为它们更快,更好地被支持,并且语法更简单,更容易理解。
input[name='optionsRadios']
答案 1 :(得分:0)
首选使用CSS选择器,而不是xpath。
css = input.ng-原始ng-valid
要么
css = input [name = optionsRadios]
答案 2 :(得分:0)
您尝试互动的元素(可能是click()
)是Angular元素,因此您必须诱使 WebDriverWait 使元素可点击,您可以使用以下任一(Java)解决方案:
cssSelector
:
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("input.ng-pristine.ng-valid[name='optionsRadios'][ng-model*='column']"))).click();
xpath
:
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//input[@class='ng-pristine ng-valid' and @name='optionsRadios'][contains(@ng-model,'column')]"))).click();