gpt4 book ai didi

python - 无法访问表单字段

转载 作者:行者123 更新时间:2023-12-01 09:26:37 24 4
gpt4 key购买 nike

我正在尝试使用我的凭据登录此页面:https://myibd.investors.com/secure/signin.aspx

当我“检查”它时 - 我可以看到类 gigya-login-form 的形式但是当我“查看源代码”时,该表单不存在。我假设表单是通过 JS (或类似的东西)加载的。我研究过,但没有一个解决方案有帮助。主要是人们建议等待页面加载

等待元素加载 30 秒的代码

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.common.exceptions import TimeoutException

url = 'https://myibd.investors.com/secure/signin.aspx'

driver = webdriver.Chrome()
driver.get(url)
myElem = WebDriverWait(driver, 30).until(EC.presence_of_element_located((By.CLASS_NAME, 'gigya-input-text')))

返回TimeoutException: Message: - 这意味着该元素永远不会加载。

有人可以帮我填写该表格并单击“提交”吗?谢谢!

UPD。我也尝试进入 iframe 内部,但效果不佳:(下面的代码

WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it("signin-iframe"))

username = driver.find_element_by_name("username")
username.send_keys("my_user_name")

它抛出ElementNotVisibleException:消息:元素不可见(我尝试按照 SO 的想法使其可见,但没有运气)

最佳答案

表单位于 iframe 内,因此为了能够处理输入字段,您需要切换到该 iframe:

WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it("signin-iframe"))
username = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '//input[@aria-label="Email" and @placeholder="Email *"]')))
username.send_keys("my_user_name")
password = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '//input[@aria-label="Password" and @placeholder="Password *"]')))
password.send_keys("my_password")
username.submit()

关于python - 无法访问表单字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50337244/

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