无法使用Selenium C#单击单选按钮

时间:2019-03-27 15:28:40

标签: c# selenium xpath css-selectors webdriverwait

下面是我的应用程序的HTML代码段。我的方案是单击单选按钮。我使用的xpath是//input[@id='authorizedContact1'],但仍然无法单击“单选”按钮。

HTML是:

<div class="radio">
<input id="authorizedContact1" name="authorizedContactValue" class="authorizedContact" type="radio">
<label for="authorizedContact1">
::before ==$0
"YES"
::after
</label>
</div>

这是我在Selenium中使用的代码

WebDriverWait wait = new WebDriverWait(_driver, TimeSpan.FromSeconds(100));
            IWebElement element = wait.Until(ExpectedConditions.ElementIsVisible(By.XPath("//input[@id='authorizedContact1']")));
            element.Click();

我将XPATH用作//input[@id='authorizedContact1'],但仍然无法单击“单选”按钮,任何人都可以在此帮助我

1 个答案:

答案 0 :(得分:0)

由于您需要在元素上Click(),因此需要为ElementToBeClickable()诱导 WebDriverWait ,并且可以使用Locator Strategies中的任何一个:

  • CssSelector

    new WebDriverWait(_driver, TimeSpan.FromSeconds(100)).Until(ExpectedConditions.ElementToBeClickable(By.CssSelector("label[for='authorizedContact1']"))).Click();
    
  • XPath

    new WebDriverWait(_driver, TimeSpan.FromSeconds(100)).Until(ExpectedConditions.ElementToBeClickable(By.XPath("//label[@for='authorizedContact1']"))).Click();