硒发现隐藏的元素

我有困难www.meridiancu.ca访问下拉菜单。这是在主页右侧的“选择银行类型”下的那个。一旦我运行我的代码。硒发现隐藏的元素

from selenium import webdriver 

from selenium.webdriver.common import action_chains, keys

import time

driver = webdriver.Chrome()

driver.maximize_window()

driver.get("http://www.meridiancu.ca")

bank_type = driver.find_element_by_id('SelectAccount')

bank_type.click()

我得到以下输出,我不知道如何找到这个“隐藏”元素。

DevTools listening on ws://127.0.0.1:12015/devtools/browser/6f5fba77-4c41-49b9-93a3-64a8363cd35b 

Traceback (most recent call last):

File "C:\Users\Imad\Documents\Programming\Python\dropdown select.py", line 14, in <module>

bank_type.click()

File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webelement.py", line 80, in click

self._execute(Command.CLICK_ELEMENT)

File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webelement.py", line 501, in _execute

return self._parent.execute(command, params)

File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 308, in execute

self.error_handler.check_response(response)

File "C:\Python27\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 194, in check_response

raise exception_class(message, screen, stacktrace)

selenium.common.exceptions.ElementNotVisibleException: Message: element not visible

(Session info: chrome=62.0.3202.94)

(Driver info: chromedriver=2.33.506120 (e3e53437346286c0bc2d2dc9aa4915ba81d9023f),platform=Windows NT 10.0.16299 x86_64)

任何建议或解决方案将不胜感激。

回答:

与选择标签的工作下面的代码:

from selenium.webdriver.support import ui 

ui.Select(driver.find_element_by_css_selector(".sign-in-panel.sign-in-banner #SelectAccount")).select_by_visible_text("Small Business Banking")

结果:“小型企业银行”的选项应该从下拉列表中选择。

希望它可以帮助你!

回答:

您遇到的问题是,你的选择是找到匹配的2个元素。匹配的第一个元素是隐藏的。当移动浏览器查看页面时会显示隐藏元素。

我做了一些调查,发现下面的CSS选择器会发现你正在寻找的元素。

bank_type = find_element_by_css_selector('.show-for-large select#SelectAccount.banking-target') 

回答:

你也可以做迭代了下来丢弃所有的选项,使用下面的代码片段。

el = driver.find_element_by_id('SelectAccount') 

for option in el.find_elements_by_tag_name('option'):

if option.text == 'Personal Banking':

option.click() # select() in earlier versions of webdriver

break

以上是 硒发现隐藏的元素 的全部内容, 来源链接: utcz.com/qa/257145.html

回到顶部