【问题标题】:How can I select not unique element with Selenium WebDriver (inside an iframe)?如何使用 Selenium WebDriver(在 iframe 内)选择不唯一的元素?
【发布时间】:2017-03-13 20:43:04
【问题描述】:

我正在尝试选择没有唯一 ID 或类的页面元素。让它成为this 页面上的单选按钮。当我尝试使用名称查找单选按钮时

var radioButton = driver.FindElements(By.Name("gender"))[1];
radioButton.Click();

Visual Studio 向我返回“mscorlib.dll 中发生 System.ArgumentOutOfRangeException 类型的未处理异常”。

已添加超时以确保页面已完全加载。但这不是解决方案。

driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(10));

我试图避免使用 XPath,但这也没有用,another exception occurred

var radioButton = driver.FindElement(By.XPath("/html/body/form/input[2]"));
radioButton.Click();

所以我想弄清楚:

  1. 在这种情况下选择单选按钮的正确方法是什么?
  2. 如何摆脱 OutOfRange 异常?
  3. 为什么 XPath 在这种情况下不起作用?

非常感谢任何帮助。

【问题讨论】:

标签: c# visual-studio iframe xpath selenium-webdriver


【解决方案1】:

只要页面中没有包含相同值的单选按钮,您就可以使用 input[value='male'] 之类的 CSS 选择器。

【讨论】:

    【解决方案2】:

    问题是由 iframe 引起的。添加此代码以便能够选择其中的元素。如果对应的iframe中没有名字请see this discussion

    driver.SwitchTo().Frame(FrameName);
    

    【讨论】:

      猜你喜欢
      • 2019-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-20
      • 2020-12-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多