python – 消息:尝试通过Selenium单击下拉菜单中的选项时,元素无法滚动到视图中
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 消息:尝试通过Selenium单击下拉菜单中的选项时,元素无法滚动到视图中,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2700字,纯文字阅读大概需要4分钟。
内容图文
![python – 消息:尝试通过Selenium单击下拉菜单中的选项时,元素无法滚动到视图中](/upload/InfoBanner/zyjiaocheng/713/c5831e9cef7945d9b2d8e0e40fc7f3f5.jpg)
我想选择一个下拉菜单并选择一个选项.我使用的是最新版本的Selenium,最新版本的Firefox,最新版本的geckodriver,以及最新版本的Python.
这是我的问题:当我尝试选择一个选项时,它会给我以下错误:
selenium.common.exceptions.ElementNotInteractableException: Message: Element <option> could not be scrolled into view.
我已经尝试了各种方法来环绕这个问题,但似乎都没有.以下是我尝试过的一些方法.
mySelectElement = browser.find_element_by_id('providerTypeDropDown')
dropDownMenu = Select(mySelectElement)
dropDownMenu.select_by_visible_text('Professional')
mySelectElement = browser.find_element_by_id('providerTypeDropDown')
dropDown = Select(mySelectElement)
for option in dropDown.options:
message = option.get_attribute('innerText')
print(message)
if message == 'Professional':
print("Exists")
dropDown.select_by_visible_text(message)
break
element = browser.find_element_by_id('providerTypeDropDown')
browser.execute_script("var select = arguments[0]; for(var i = 0; i < select.options.length; i++){ if(select.options[i].text == arguments[1]){ select.options[i].selected = true; } }", element, "Professional")
HTML代码遵循通常的选择标记和选项标记.任何帮助表示赞赏. HTML代码包含在下面.
<select data-av-chosen="providerTypes" id="providerTypeDropDown" data-placeholder="Please Select a Provider Type" name="providerTypeDropDown"
class="chzn-select input-full ng-pristine chzn-done ng-invalid ng-invalid-provider-type" data-ng-options="providerType.value for providerType in request.models.providerTypes"
data-ng-model="request.models.providerType" data-av-validator-field="providerType" data-disable-search-threshold="5" style="display; none;">
<option value="" class="">Please Select a Provider Type</option>
<option value="0">Professional</option>
<option value="1">Institutional</option>
</select>
打印语句用于测试/代码跟踪.
解决方法:
此错误消息…
selenium.common.exceptions.ElementNotInteractableException: Message: Element <option> could not be scrolled into view.
…意味着<选项>您的程序尝试与之交互的项目无法滚动到视图中.
所需元素的HTML会给我们一些错误背后的想法.但是,似乎所需的元素在Viewport中不可点击.要解决此问题,您必须引导WebDriverWait才能使元素可单击,您可以使用以下解决方案:
mySelectElement = browser.find_element_by_id('providerTypeDropDown')
dropDownMenu = Select(mySelectElement)
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//select[@id='providerTypeDropDown']//options[contains(.,'Professional')]")))
dropDownMenu.select_by_visible_text('Professional')
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.select import Select
内容总结
以上是互联网集市为您收集整理的python – 消息:尝试通过Selenium单击下拉菜单中的选项时,元素无法滚动到视图中全部内容,希望文章能够帮你解决python – 消息:尝试通过Selenium单击下拉菜单中的选项时,元素无法滚动到视图中所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。