我试图使用Python从Selenium下拉列表中选择一个选项
<div class="form-group mt-2 mb-3 p-3">
<form id="did_atd_provide_pnc">
<fieldset>
<label for="did_atd_provide_pnc">Did ATD Consultants provide a Plan & Cost review for
this project*?</label>
<select class="form-control form-control-sm required-field atd_provided_dropdown" id="did_atd_provide_pnc"
name="did_atd_provide_pnc" data-error-name="Did ATD Provide P&C">
<option value="">-----</option>
<option value="Yes">Yes</option>
<option value="No">No</option>
</select>
</fieldset>
</form>
</div>
我正在写这段代码
select = Select(driver.find_element_by_id('did_atd_provide_pnc'))
select.select_by_visible_text('No')
但我得到了这个错误
UnexpectedTagNameException: Select only works on <select> elements, not on "<form>"
是否有其他解决方案可以使用其他可靠的解决方案测试此案例
你离得够近了。但是,要通过
find_element_by_id('did_atd_provide_pnc')
标识的第一个元素是<form>
标记,其中所需的元素是<select>
标记因此,
Select()
抛出<form>
元素的错误如下:解决方案
要选择文本为No的
<option>
,需要为element_to_be_clickable()
引入WebDriverWait,并且可以使用以下基于xpath的Locator Strategies:使用xpath和
select_by_visible_text()
使用xpath
select_by_value()
:注意:您必须添加以下导入:
参考资料
您可以在以下内容中找到一些相关的详细讨论:
相关问题 更多 >
编程相关推荐