【发布时间】: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