我正在使用单选按钮的参考,如下所示。
<input id="checkmo" class="radio" type="radio" data-bind="attr: {'id':getCode()}, value: getCode(), checked: isChecked, click: selectPaymentMethod, visible: isRadioButtonVisible()" name="payment[method]" value="checkmo"/>
我为此使用了以下代码,但无法单击单选按钮:
WebElement radioBtn = driver.findElement(By.id("checkmo"));
radioBtn.click();
答案 0 :(得分:1)
您尝试与之交互的 Radio Button 是一个React元素,因此您需要诱使 WebDriverWait 使元素可点击,您可以使用以下任一解决方案:
cssSelector
:
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("input.radio#checkmo"))).click();
xpath
:
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//input[@class='radio' and @id='checkmo']"))).click();
答案 1 :(得分:0)
您可以引入WebDriverWait
,这是硒中的显式等待。
代码:
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.id("checkmo"))).click();