【问题标题】:select radio button by index按索引选择单选按钮
【发布时间】:2016-07-21 19:14:25
【问题描述】:

我在 Visual Studio 中使用 C# selenium 驱动程序来自动化我的脚本。我的单选按钮中的数据是动态生成的,我想使用 index 选择单选按钮。这些是我尝试过的方法

方法一

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

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

方法二

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 和名称,但值不同

如果您能告诉我如何通过传递其值或使用索引选择单选按钮来选择第一个单选按钮,那就太好了。

【问题讨论】:

  • 能否请您添加代码本身的示例
  • 如果你的元素是单选按钮,你为什么要点击使用SelectElement,而它期望元素应该是带有select标签的下拉列表..你能分享你的单选按钮的HTML吗
  • 嗨 Saurabh,感谢您调查我的问题。我不确定如何单击单选按钮。这是我的 HTML 代码 。所以这些单选按钮是动态生成的。例如,如果我有 3 个单选按钮,则所有 3 个单选按钮都具有相同的 id 和名称,但值不同。因此,如果您能告诉我如何通过传递其值或通过使用 index 选择单选按钮来选择第一个单选按钮,那就太好了。感谢你的帮助。谢谢
  • 好的..我已经发布了作为答案..试试这个让我知道...:)

标签: c# selenium-webdriver


【解决方案1】:

你应该尝试如下:-

  • 如果您按其值选择单选按钮,请尝试如下使用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();
    

希望对您有所帮助...:)

【讨论】:

  • 谢谢 Saurabh,我尝试使用 index 选择单选按钮,它起作用了。感谢您的帮助
猜你喜欢
  • 1970-01-01
  • 2013-03-01
  • 1970-01-01
  • 2011-01-29
  • 1970-01-01
  • 1970-01-01
  • 2013-01-01
  • 2011-09-22
相关资源
最近更新 更多