按索引

时间:2016-07-21 19:14:25

标签: c# selenium-webdriver

我在visual studio中使用C#selenium驱动程序来自动化我的脚本。我的单选按钮中的数据是动态生成的,我想使用索引选择单选按钮。这些是我尝试的方式

方法1

new SelectElement(driver.FindElement(By.Id("XX"))).SelectByIndex(2);Click();

在第一种方法中,我无法将Click与元素相关联

方法2

IWebElement element = driver.FindElement(By.("XX"));
System.Threading.Thread.Sleep(2000);
element.Click();

在方法2中,我不确定如何传递索引。

这是我的HTML代码:

<input type="radio" name="XXXX" id="XXXX" value="5273786">.

所以这些单选按钮是动态生成的。例如,如果我有3个单选按钮,所有3个单选按钮具有相同的ID和名称,但具有不同的值

如果您能通过传递其值或通过使用索引选择单选按钮来让我知道如何选择第一个单选按钮,那将会很棒。

1 个答案:

答案 0 :(得分:0)

你应该尝试如下: -

  • 如果您按其值选择单选按钮,请使用By.XPath()尝试如下: -

    IWebElement element = driver.FindElement(By.Xpath("//input[@value = '5273786']"));
     element.Click();
    

    或者使用By.Id()尝试如下: -

      IList<IWebElement> elements = driver.FindElements(By.TagName("select"));
      var element = selectElements.Where(se => se.GetAttribute('value') == '5273786');
      element.Click();
    
  • 如果您想使用索引选择单选按钮,请使用By.Xpath()尝试如下: -

     IWebElement element = driver.FindElement(By.Xpath("(//input[@id = 'XXXX'])[1]"));
     element.Click();
    

    或者使用By.Id()尝试如下: -

    IList<IWebElement> elements = driver.FindElements(By.Id("XXXX"));
    elements[0].Click();
    

希望它有帮助...:)