【问题标题】:Selenium Web Driver Selecting option from Drop downSelenium Web 驱动程序从下拉列表中选择选项
【发布时间】:2020-05-17 21:57:33
【问题描述】:

我有这个 HTML

<div>
      <div tabindex="0" class="dropdown xs-dropdown show" id="selBudgetYearRange-wrap" style="border: 1px solid rgb(206, 212, 218); border-image: none;">
        <button tabindex="-1" class="btn btn-default dropdown-toggle" id="selBudgetYearRange-btn" aria-expanded="true" aria-haspopup="true" type="button" data-toggle="dropdown">2020 vs 2019 (Oct 2019 - Mar 2020 vs Oct 2018 - Mar 2019)
        </button>
        <div class="dropdown-menu show" id="selBudgetYearRange-dmenu" aria-labelledby="selBudgetYearRange-btn" style="left: 0px; top: 0px; width: calc(100% + 2 * 1px); margin-top: calc(0px + 1px); margin-left: calc(-0px - 1px); position: absolute; transform: translate3d(0px, 21px, 0px);" x-placement="bottom-start">
        <a class="dropdown-item active" onclick="dropdownChanged(this, 'selBudgetYearRange','201910-202003,2');;return false;" href="javascript:void(0)">2020 vs 2019 (Oct 2019 - Mar 2020 vs Oct 2018 - Mar 2019)</a>
        <a class="dropdown-item" onclick="dropdownChanged(this, 'selBudgetYearRange','201810-201909,2');;return false;" href="javascript:void(0)">2019 vs 2018 (Whole Year Oct - Sep)</a>
        <a class="dropdown-item" onclick="dropdownChanged(this, 'selBudgetYearRange','201710-201809,2');;return false;" href="javascript:void(0)">2018 vs 2017 (Whole Year Oct - Sep)</a>
      </div><input name="selBudgetYearRange" id="selBudgetYearRange" type="hidden" value="201910-202003,2"></div>
</div>

有 3 个选项

2020 年对比 2019 年(2019 年 10 月 - 2020 年 3 月对比 2018 年 10 月 - 2019 年 3 月)

2019 年与 2018 年(全年 10 月至 9 月)

2018 年与 2017 年(全年 10 月至 9 月)

我已经设法通过使用来解决这个问题

.FindElementByXPath("//*[text()='2019 vs 2018 (Whole Year Oct - Sep)']").Click

我可以选择中间选项,但只有在我先单击下拉菜单以使选项可见时才有效。

我似乎无法让 selenium 为我单击下拉菜单并使选项可见,以便我可以使用上面的 xpath 来选择我想要的选项。

请有人建议如何做到这一点?或者,如果有一种方法可以选择我的选项而无需首先出现下拉菜单?

【问题讨论】:

  • 在选择选项之前,您是否尝试过点击.FindElementByXPath("//div[starts-with(@class,'dropdown xs-dropdown')]").Click
  • 是的,我试过了,看起来它选择了下拉菜单(突出显示它)但实际上并没有打开选项

标签: excel vba selenium selenium-webdriver


【解决方案1】:

所以设法让它工作。 通过使用clickdouble(在弄清楚xpath之后)

我不知道为什么我需要使用 clickdouble 而不是 click。

但它有效,所以我不会抱怨太多

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-06
    • 2018-01-18
    • 2013-05-03
    • 1970-01-01
    • 1970-01-01
    • 2015-03-13
    • 1970-01-01
    • 2020-08-11
    相关资源
    最近更新 更多