我正在尝试从给定的3个单选按钮中选择一个单选按钮,但没有此类元素异常。
这是所有3个单选按钮的HTML代码:
<div class="radioGroup">
<div>
<div class="radio">
<div class="radioVal"></div>
<label><span><img src="https://s3.amazonaws.com/xyz.png" alt="AltText1">Radio Button1</span></label>
</div>
<div class="radio">
<div class="radioVal"></div>
<label><span><img src="https://s3.amazonaws.com/xyz1.png" alt="AltText2">Radio Button2</span></label>
</div>
<div class="radio">
<div class="radioVal"></div>
<label><span><img src="https://s3.amazonaws.com/xyz3.png" alt="AltText3">Radio Button3</span></label>
</div>
</div>
我正在使用此代码选择单选按钮:
WebElement Radio2 = driver.findElement(By.xpath("//img[contains(@alt, 'AltText2')]"));
Radio2.click();
答案 0 :(得分:1)
通常,发生这种情况时,原因是两个原因之一。
(1)检查XPath是否正确
(2)等待元素被点击
System.TimeSpan timeToWait = new TimeSpan(0, 0, 10);
WebDriverWait wait = new WebDriverWait(driver, timeToWait);
IWebElement htmlElementOnPage = wait.Until(ExpectedConditions.ElementToBeClickable(By.XPath("//img[contains(@alt, 'AltText2')]")));
此外,我在您的html中看不到任何单选按钮。但是我猜您实际上并不是要单击标签,而是要单击标签上方的标签?
如果正确,则您的xpath应该指向div,而不是div旁边的标签...
By.Xpath("//img[contains(@alt, 'AltText2')]/../div");