当前位置: 首页 > 知识库问答 >
问题:

消息:试图通过Selenium单击下拉菜单中的选项时,无法将元素滚动到视图中

吴均
2023-03-14
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")
<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> 

print语句用于测试/代码跟踪。

共有1个答案

籍弘伟
2023-03-14

此错误消息...

selenium.common.exceptions.ElementNotInteractableException: Message: Element <option> could not be scrolled into view.

...意味着无法将程序试图与之交互的项滚动到视图中。

所需元素的HTML会给我们一些错误背后的想法。但是,所需的元素似乎不是视图中的clickable/。要解决这个问题,您必须引导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
 类似资料:
  • 问题内容: 我正在尝试选择一个下拉菜单并选择一个选项。我正在使用最新版本的Selenium,最新版本的Firefox,最新版本的geckodriver和最新版本的Python。 这是我的问题:当我尝试选择一个选项时,它给我以下错误: 我尝试了各种方法来解决此问题,但似乎没有一种有效。这是我尝试过的一些方法。 HTML代码遵循通常的选择标记和选项标记。任何帮助表示赞赏。HTML代码包括在下面。 打印

  • 问题内容: 我正在使用FF 60.0的壁虎驱动程序selenium java。以前我的代码运行正常,但是突然之间,现在每次运行它时,都会出现错误,就像我尝试单击按钮时一样。下面是我的代码,我尝试或隐式等待,但没有任何效果。我被卡在这里。 至此的代码有效,但是一旦到达此处,它就会显示上述错误。下面是错误代码段。 问题答案: 此错误消息… …表示 GeckoDriver / FirefoxDriver

  • 我试图创建一个自动的网络会话,我登录到一个网站,并从下拉框中选择一个选项。我能够使用硒进入页面,但我无法点击打开下拉菜单的栏,然后选择我想要的选项。这是页面的截图,它的超文本标记语言代码:[![在此输入图像描述][1]][1][![在此输入图像描述][2]][2] 我想单击下拉列表中的“降级性能”选项。我有点被困在这里,因为下拉列表的HTML与[this one][3]根本不相似(无法“选择”)。

  • 有人能帮我一下吗:检查元素代码是。 代码为:

  • 嗨,我正在尝试自动启动下拉菜单。默认情况下,它的可见性是隐藏的。将鼠标悬停在它上面时,它的可见性属性显示为可见。我可以单击下拉菜单,但是在单击下拉菜单后,我的selenium脚本不能从下拉菜单中选择值。 错误:线程"main"org.openqa.selenium.ElementNotVisibleException异常:无法单击元素 HTML代码段

  • 我正在尝试使用java和Eclipse学习Selenium。我试图找到网页中的一个元素。 我尝试使用这行代码单击一个html元素: 下图显示了页面的html结构: