selenium.webdriver.Firefox 在 nbc.com 登录页面无法正常工作

问题描述 投票:0回答:1

我使用它在 nbc.com 上自动登录,并且 nbc.com 登录页面以

Sorry, we had a problem. Please try again.
响应,而不是重定向到链接提供程序页面。除此之外,该页面已成功登录到该网站。我在想这是否是网站源中的某些内容可能导致这种情况发生,或者是否是我遗漏的内容。

from selenium.webdriver.common.by import By

# created this class to use a profile and create it if doesn't exist
from library import Firefox

firefox = Firefox()
firefox.get('https://www.nbc.com/sign-in')

html = firefox.find_element(by = By.TAG_NAME, value = 'html')
form = html.find_element(by = By.TAG_NAME, value = 'form')

for element in form.find_elements(by = By.TAG_NAME, value = 'input'):
    if element.get_attribute(name = 'type') == 'email':
        element.send_keys('[email protected]')
    elif element.get_attribute(name = 'type') == 'password':
        element.send_keys('******')  # noqa

for element in form.find_elements(by = By.TAG_NAME, value = 'label'):
    if element.get_attribute(name = 'class') == 'auth-terms__terms-checkbox':  # noqa
        element.click()
        break

form.find_element(by = By.TAG_NAME, value = 'button').click()

我使用以下代码加载firefox并手动登录,我得到了同样的错误。

from library import Firefox

firefox = Firefox()
firefox.get('https://www.nbc.com/sign-in')

我也用它来加载没有配置文件的 Firefox,但仍然遇到相同的错误。

from selenium.webdriver import Firefox

firefox = Firefox()
firefox.get('https://www.nbc.com/sign-in')
python authentication selenium-webdriver firefox
1个回答
0
投票

加载时间:确保元素在交互之前已加载。您可以使用

WebDriverWait

与预期条件一起等待元素加载,然后再与它们交互。

有时登录可能需要 Cookie/会话。

事先检查正确的凭据。

© www.soinside.com 2019 - 2024. All rights reserved.