【问题标题】:When trying to select a drop down using selenium, getting "Element should have been select but was span" error [duplicate]尝试使用 selenium 选择下拉列表时,出现“应该选择元素但已跨度”错误 [重复]
【发布时间】:2019-09-26 11:52:16
【问题描述】:

我正在编写一个 c# selenium 脚本,我需要从下拉列表中选择一个值。尝试选择它时,出现“元素应该被选择但被跨度”错误

我能够访问该网站,并且一切正常。但是当试图选择选项时 var selectElement = new SelectElement(opt); 它抛出一个错误。我知道我在某个地方错了,需要帮助

  var opt = driver.FindElement(By.XPath("/html/body/div[7]/div[2]/div/div[2]/span/span/span[1]"));
var selectElement = new SelectElement(opt);
System.Threading.Thread.Sleep(12000);
selectElement.SelectByText("ABN MRI");

网站的 HTML 代码是

<span unselectable="on" class="k-dropdown-wrap k-state-default"><span unselectable="on" class="k-input">ABN RealPage</span><span unselectable="on" class="k-select"><span unselectable="on" class="k-icon k-i-arrow-s">select</span></span></span>
<input id="AvidIntegration_InstanceList" style="width: 350px; display: none;" data-role="dropdownlist">

我希望它应该选择所需的选项,但在这里它不起作用。

【问题讨论】:

    标签: c# selenium-webdriver


    【解决方案1】:

    您尝试选择的元素实际上是一个“Span”元素,您不能将其放入“SelectElement”类构造函数中以获取对象。

    你可以做的是:

    • 单击其正下方的输入元素。 (我希望那是触发点击事件的那个)
    • 查看选择框中提供了哪些元素。
    • 根据您的偏好,使用相应的 CSS 选择器或 XPath 单击其中一个。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-30
      • 1970-01-01
      • 2021-11-04
      • 1970-01-01
      • 1970-01-01
      • 2022-07-28
      • 1970-01-01
      • 2021-10-30
      相关资源
      最近更新 更多