Как установить переключатель в атрибуте идентификатора элемента с помощью Selenium и C# - PullRequest
1 голос
/ 18 июня 2020

Я пытаюсь выбрать переключатель и элемент ввода, у него есть группа id и значение In_Group. Есть 4 разных переключателя с одним и тем же идентификатором, но разными значениями, поэтому я пытаюсь выбрать правильный, который ищу.

<input class="custom-radio" id="group" name="group" type="radio" value="In_Group">

Я пробовал что-то вроде этого:

driver.FindElement(By.XPath("//*[contains(@id='group' and @value='In_Group')]"))

Но элемент не найден, может кто-нибудь мне помочь

1 Ответ

1 голос
/ 18 июня 2020

Чтобы найти элемент, вы можете использовать любую из следующих Стратегий локатора :

  • CssSelector:

    driver.FindElement(By.CssSelector("input#group[value='In_Group']"));
    
  • XPath:

    driver.FindElement(By.XPath("//input[@id='group' and @value='In_Group']"));
    

Однако, поскольку это элемент <input>, и, возможно, вы будете взаимодействовать с ним, в идеале вы должны вызвать WebDriverWait для желаемого ElementToBeClickable(), и вы можете использовать любую из следующих стратегий локатора :

  • CssSelector:

    new WebDriverWait(driver, TimeSpan.FromSeconds(20)).Until(ExpectedConditions.ElementToBeClickable(By.CssSelector("input.custom-radio#group[value='In_Group'][name='group']"))).Click();
    
  • XPath:

    new WebDriverWait(driver, TimeSpan.FromSeconds(20)).Until(ExpectedConditions.ElementToBeClickable(By.XPath("//input[@id='group' and @value='In_Group'][@class='custom-radio' and @name='group']"))).Click();
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...