我是使用 python3 和 selenium 的初学者,并尝试单击下拉选项中的特定值。
我尝试使用 select 和 actionchains、execute_script 和 js、xpath、css...等,但尽管网站已完全加载,但它找不到该元素。我还尝试单击下拉菜单以使用坐标,然后按钥匙串中的箭头键。但也没有效果。
所以我检查了所有html,发现下拉列表的类型是隐藏的。
有什么方法可以禁用我想要的隐藏类型或点击值吗?
html代码如下。
<input type="hidden" name="txtPosiCd" value="">
<select onchange="" name="txtPosiCd" style="width:150px;" class="textfield" title="직급">
<option value="">전체</option>
<option value="11">교수</option>
<option value="12">부교수</option>
<option value="13">조교수</option>
<option value="15">강사</option>
<option value="21">명예교수</option>
</select>
很抱歉只附加了 html 块,因为该网页仅供其会员使用。
我尝试过谷歌搜索并寻找解决方案,但我无法理解解释,或者它们是我已经尝试过但失败的方法。如果有什么我可能错过的,请告诉我。
在selenium中,你可以找到隐藏的元素,但不能用
click()
、clear()
、send_keys()
或其他方法操作它们。
ele = driver.find_element_by_id("example")
print(ele)
ele.send_keys("example") # This will raise ElementNotVisibleException error
不过,你可以尝试用js代码来操作。假设您点击这个隐藏链接。
<a hidden id="google" href="https://google.com">
您可以通过以下代码进行点击操作。
js = 'document.getElementById("google").click()'
driver.execute_script(js)
看,Selenium 不允许我们直接与隐藏元素交互,仅此而已。在这种情况下,如果你尝试互动;你会看到“ElementNotInteractable”异常。