我使用Python Scrapy,并尝试连接到this site。
我为这个问题创建了一个测试帐户
Email: g2387744@nwytg.com
password: 123456789
我尝试使用FormRequest
填写表单 data = {'loginName': 'g2387744@nwytg.com',
'password' : '123456789',
'rememberme' : 'true'
}
yield FormRequest("https://ecustomermw.colruytgroup.com/ecustomermw/v1/fr/customer/logon?client=cogo_cogo&variant=none" ,method="POST",formdata=data)
但我没有登录,我重定向到注册页面
我读了this answer,我尝试了Selenium
username = driver.find_element_by_id("loginName")
password = driver.find_element_by_id("password")
username.send_keys("g2387744@nwytg.com")
password.send_keys("123456789")
driver.find_elements_by_class_name("button.btn.large").click()
但我没有登录,我重定向到注册页面
我哪里错了?
答案 0 :(得分:2)
你的Selenium代码几乎是正确的。问题是位于iframe内的身份验证表单应该切换到它以便能够处理输入:
driver.switch_to.frame(driver.find_element_by_css_selector('iframe._loadEvent'))
driver.find_element_by_id('loginName').send_keys('g2387744@nwytg.com')
driver.find_element_by_id('password').send_keys('123456789')
driver.find_element_by_css_selector('button[type="submit"]').click()