【问题标题】:How to click on Radio button with only a class name Selenium如何单击只有类名 Selenium 的单选按钮
【发布时间】:2017-02-24 05:33:04
【问题描述】:

我正在尝试单击此单选按钮。

 <form id = "co-payment-form" class = "payment" action ="">
    <dt>
    <label class="radio" for="p_method_checkoutdotcom">
    <span class="radio__span">
    <i class="radio__icon"></i>
    </span>
    <span class="radio__title">Credit Card </span>
    </label>
    </dt>

我用代码定位它:

IWebElement creditcardRadio = driver.FindElement(By.ClassName("radio__span"));

我得到错误:

WebDriver.dll 中出现“OpenQA.Selenium.WebDriverException”类型的未处理异常附加信息:意外错误。元素在点 (297.3999938964844, 302.5) 处不可点击。其他元素会收到点击:&lt;div class="loader loader--white-transparent loader--fixed"&gt;&lt;/div&gt;

请注意,该组中还有一些其他单选按钮。要查看它,只需填写此页面https://shop.adidas.ae/en/checkout/onepage/,直到您看到信用卡、Paypal 或货到付款单选按钮

感谢您的帮助

【问题讨论】:

    标签: c# selenium radio-button


    【解决方案1】:

    根据错误描述,当您尝试单击该元素时,该元素上方会显示一个“加载器”叠加层。 等待元素可点击然后执行点击:

    IWebElement element = new WebDriverWait(driver, TimeSpan.FromSeconds(30)).Until(ExpectedConditions.ElementToBeClickable(By.ClassName("radio__span")));
    element.Click();
    

    【讨论】:

    • 感谢您的帮助,但我仍然收到错误:
    • WebDriver.dll 中出现“OpenQA.Selenium.WebDriverException”类型的未处理异常附加信息:意外错误。元素在点 (297.3999938964844, 302.5) 处不可点击。其他元素会收到点击:
    • 您还有什么建议吗?
    • @SamM 这很奇怪,我认为您不应该再次遇到这种错误。您确定您没有尝试在等待之前单击此元素吗?另外,最大化浏览器窗口有什么不同吗?谢谢。
    • 是的,很奇怪,浏览器被最大化了。如果您想测试自己,请点击此链接 shop.adidas.ae/en/checkout/onepage 并按照所有信息进行操作,直到您进入单选按钮页面。
    【解决方案2】:

    尝试使用操作。 移动到该元素,然后触发单击。它应该可以解决问题。

    类似这样的: 在java中 动作 clickOnRadioButton = new Actions(driver); clickOnRadioButton.moveToElement(driver.findElement(By.cssSelector("i.radio__icon")).click().build().perform();

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-18
      • 1970-01-01
      • 2020-01-24
      • 2018-04-30
      • 2021-08-13
      • 2021-10-28
      • 2019-03-17
      相关资源
      最近更新 更多