gpt4 book ai didi

python - 使用 Selenium 对隐藏元素进行数据输入(Python 2.7)- 元素不可见

转载 作者:太空宇宙 更新时间:2023-11-03 12:10:35 24 4
gpt4 key购买 nike

我正在使用 Selenium 和 Python 2.7 编写一个脚本来登录我的银行帐户。从历史上看,它是有效的,但现在抛出 ElementNotVisibleException 异常。这是我的代码:

import time
import os
import subprocess
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support import ui

user_id = raw_input('Enter your account number')
password = raw_input('Enter your password')

driver = webdriver.Chrome() # Optional argument, if not specified will search path.

def regular():

site = driver.get('https://www.meridiancu.ca/');

enter_user_id = driver.find_element_by_xpath('//*[@id="memberNo"]').send_keys(user_id)

regular()

这是我的错误信息:

Traceback (most recent call last):
File "C:\Users\Desktop\Programming\Python Files\Monthly\Banking.py", line 50, in <module>
regular()
File "C:\Users\Desktop\Programming\Python Files\Monthly\Banking.py", line 19, in regular
enter_user_id = driver.find_element_by_xpath('//*[@id="memberNo"]').send_keys(user_id)
File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webelement.py", line 349, in send_keys
'value': keys_to_typing(value)})
File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webelement.py", line 493, in _execute
return self._parent.execute(command, params)
File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 256, 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)
ElementNotVisibleException: Message: element not visible**
(Session info: chrome=63.0.3239.84)
(Driver info: chromedriver=2.30.477700 (0057494ad8732195794a7b32078424f92a5fce41),platform=Windows NT 10.0.16299 x86_64)

异常被抛出在 enter_user_id = driver.find_element_by_xpath('//*[@id="memberNo"]')

最佳答案

当您尝试将 成员(member)编号/用户 ID 字段与 xpath 识别为 //*[@id="memberNo"] ,此 xpathHTML 中的 5 元素完全匹配。所以我们需要构造一个唯一的cssxpath来唯一标识成员(member)编号/用户ID字段,如下所示:

  • xpath

    driver.find_element_by_xpath("//div[@class='homepage-banner-block-grx desktop']//input[@id='memberNo' and @type='text']").send_keys(user_id)
  • css_selector

    driver.find_elements_by_css_selector("div.homepage-banner-block-grx.desktop input#memberNo[type=text]").send_keys(user_id)  

注意:

  • 在构建 xpath 时,确保我们需要避免在 START TO JUMP CONTENT LINK 部分中使用字段 Member Number/User ID , mobile nav 部分和 mobile-buttons 类。

  • 我们还需要确保 xpath 识别text 字段而不是任何隐藏 字段。

    <
  • 最后,如果您在元素上调用 send_keys(user_id) 方法,它会返回 void

关于python - 使用 Selenium 对隐藏元素进行数据输入(Python 2.7)- 元素不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48178619/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com