我使用它在 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')
加载时间:确保元素在交互之前已加载。您可以使用
WebDriverWait
与预期条件一起等待元素加载,然后再与它们交互。
有时登录可能需要 Cookie/会话。
事先检查正确的凭据。