Я использую Selenium для имитации входа в систему с помощью браузера Chrome.На странице входа есть ползунок, который нужно перетащить, чтобы завершить процесс входа.Странно то, что если я открою веб-страницу, используя driver.get(page)
.Тогда скользящий проверочный код всегда будет неудачным, даже если я вручную введу имя пользователя, pwd и перетащу ползунок
Я пытался добавить пользовательский агент, но без помощи.Есть ли другой путь?Я понимаю, что мы можем добавить пользовательские данные, чтобы пропустить эту часть, но я просто хочу сначала выяснить это.
Код проверки ползунка отобразится, если вы попытаетесь войти в систему более одного раза.Кажется, что веб-страница просто обнаруживает, что вы используете скрипт для входа в систему. Ошибка будет выглядеть так: «ops, не удалось проверить. Пожалуйста, обновите снова».Затем я использую driver.find_element_by_xpath("//*[@id='nocaptcha']/div/span/a").click()
, чтобы обновить слайдер.
Заранее спасибо.
driver = webdriver.Chrome()
driver.get("https://login.taobao.com/member/login.jhtml?spm=a21bo.2017.754894437.1.5af911d95pqPfs&f=top&redirectURL=https%3A%2F%2Fwww.taobao.com%2F")
action = ActionChains(driver)
login()
def login():
driver.find_element_by_class_name("login-switch").click()
driver.find_element_by_id('TPL_username_1').clear()
driver.find_element_by_id('TPL_username_1').send_keys('xxx')
driver.find_element_by_id('TPL_password_1').clear()
driver.find_element_by_id('TPL_password_1').send_keys("xxx")
time.sleep(1.5)
# driver.find_element_by_id('J_SubmitStatic').click()
Slider()
def Slider():
#Sliding verification code
while True:
try:
slip=driver.find_element_by_xpath("//*[@id='nc_1_n1z']")
action.click_and_hold(slip).perform()
action.move_by_offset(150,0)
time.sleep(0.8)
action.move_by_offset(148,0)
action.release().perform()
time.sleep(2)
text = driver.find_element_by_xpath("//*[@id='nc_1__scale_text']/span")
if text.text.startswith("请在下方"):
print("Successful")
break
if text.text.startswith("请点击"):
print("Successful")
break
if text.text.startswith("请按住"):
print("Failed. Try again")
continue
except Exception:
##Error occurs, click the "Refresh" button to refresh the sliding verification code again
driver.find_element_by_xpath("//*[@id='nocaptcha']/div/span/a").click()
driver.find_element_by_id('J_SubmitStatic').click()