【发布时间】:2020-05-26 03:33:42
【问题描述】:
我正在尝试让 Python / Selenium 正确单击下拉菜单并选择“IT”,但我能做的最好的事情就是找到元素并收到错误消息,指出我无法在找到的内容上输入文本.
基本上,用户会单击该菜单并选择 IT 或键入 IT 并按 Enter。
HTML 代码:
<div class="form-group">
<label class="col-md-3 control-label" for="id_tenant_group">Tenant group</label>
<div class="col-md-9">
<select name="tenant_group" nullable="true" class="netbox-select2-api form-control" data-url="/api/tenancy/tenant-groups/" data-filter-for-tenant="group_id" placeholder="None" id="id_tenant_group">
<option value="" selected>---------</option>
<option value="2">IT</option>
<option value="1">OT</option>
</select>
</div>
当我检查元素时,我可以看到有一个 span 元素触发了一个事件,该事件显示了另一个 span,最终可以看到我的选项。
我无法通过可见文本进行选择,因为其他菜单也包含相同的“---------”可见文本。
我截取了几张截图来说明问题,希望对您有所帮助。 html codebrowser inspect
说实话,我真的很迷茫,任何建议都将不胜感激。
编辑: 我尝试了以下方法:
tenant_g_element = Select(browser.find_element(By.XPATH, '//span[@id="select2-id_tenant_group-container"]'))
tenant_g_element.selectByVisibleText("IT")
但我收到以下错误:
selenium.common.exceptions.UnexpectedTagNameException: Message: Select only works on <select> elements, not on span
【问题讨论】: