如何按照给定的HTML单击单选按钮

时间:2018-07-23 05:42:18

标签: java selenium selenium-webdriver xpath css-selectors

我正在使用单选按钮的参考,如下所示。

<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();

2 个答案:

答案 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();