如何解决尝试使用Selenium登录,但无法正常工作
我正在尝试使用硒登录Woolworths网站。但是输入电子邮件和密码后,当我单击登录按钮时,什么也没有发生。我已经尝试了所有可以在互联网上找到的东西,但是没有用。这是一个简单的登录,但现在让我发疯。 我正在共享下面的代码:
driver = webdriver.Chrome()
driver.get("https://www.woolworths.com.au/shop/securelogin")
loginform = driver.find_element_by_id('loginForm')
user = loginform.find_element_by_id("loginForm-Email")
user.send_keys("myemail")
pas = loginform.find_element_by_id("loginForm-Password")
pas.send_keys("mypass")
pas.submit()
图片:
解决方法
要登录该网站,您必须为element_to_be_clickable()
引出WebDriverWait,并且可以使用以下任一Locator Strategies:
-
使用
CSS_SELECTOR
:driver.get('https://www.woolworths.com.au/shop/securelogin') WebDriverWait(driver,20).until(EC.element_to_be_clickable((By.CSS_SELECTOR,"input#loginForm-Email"))).send_keys("myemail") driver.find_element_by_css_selector("input#loginForm-Password").send_keys("mypass") driver.find_element_by_css_selector("button[type='submit']").click()
-
使用
XPATH
:driver.get('https://www.woolworths.com.au/shop/securelogin') WebDriverWait(driver,20).until(EC.element_to_be_clickable((By.XPATH,"//input[@id='loginForm-Email']"))).send_keys("myemail") driver.find_element_by_xpath("//input[@id='loginForm-Password']").send_keys("mypass") driver.find_element_by_xpath("//button[@type='submit']").click()
-
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
浏览器快照:
,我遇到了类似的问题,我只能说这可能有两个根源:互联网连接弱或服务器是树懒。 您可以尝试添加一个等待,直到登录按钮内的加载图标消失(您需要为其创建定位器),或者基于javascript执行点击操作:
driver.execute_script("document.getElementsByName('locator_name')[0].click();")
,
要单击“登录”按钮,请使用以下xpath:
login= driver.find_element_by_xpath("//*[@id='loginForm']/fieldset/div/shared-button/button")
and then try:
login.submit()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。