带有隐藏类的 python selenium 选择下拉列表

问题描述 投票:0回答:2

我是使用 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 块,因为该网页仅供其会员使用。

我尝试过谷歌搜索并寻找解决方案,但我无法理解解释,或者它们是我已经尝试过但失败的方法。如果有什么我可能错过的,请告诉我。

python selenium-webdriver select html-select hidden
2个回答
0
投票

在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)

0
投票

看,Selenium 不允许我们直接与隐藏元素交互,仅此而已。在这种情况下,如果你尝试互动;你会看到“ElementNotInteractable”异常。

© www.soinside.com 2019 - 2024. All rights reserved.