Как пройти логин используя селен с несколькими классами - PullRequest
0 голосов
/ 16 апреля 2019

Я пытаюсь передать имя пользователя и пароль на страницу входа, которая имеет структуру с несколькими классами.

Я пробовал различные решения XPATH, но не смог сделать одну работу для этого примера.Вот HTML-код сайтов.Если кто-то может помочь, это будет очень признателен.Благодарю.


<div class="hm-HeaderModule_UserAdmin ">
<div class="hm-Login ">

<div class="hm-Login_UserNameWrapper ">
<input type="text" class="hm-Login_InputField ">
<div class="hm-Login_InputText ">Join Now</div></div>

<div class="hm-Login_PasswordWrapper ">
<input type="text" class="hm-Login_InputField ">
<input type="password" class="hm-Login_InputField Hidden ">
<button tabindex="0" class="hm-Login_LoginBtn ">GO</button>
<div class="hm-Login_InputText ">Lost Login?</div></div></div></div>

Оба текстовых поля для ввода имени пользователя и пароля расположены с помощью hm-Login_InputField

Ответы [ 3 ]

1 голос
/ 16 апреля 2019

Попробуйте использовать CSS Selector, что намного быстрее. Используйте WebdriverWait для обработки элемента.

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions
from selenium import webdriver

driver=webdriver.Chrome()
driver.get("url here")

wait=WebDriverWait(driver,20)
userele=wait.until(expected_conditions.element_to_be_clickable((By.CSS_SELECTOR,'div.hm-Login_PasswordWrapper input.hm-Login_InputField[type="text"]')))
userele.send_keys('xyz@gmail.com')
passwdele=wait.until(expected_conditions.element_to_be_clickable((By.CSS_SELECTOR,'div.hm-Login_PasswordWrapper input.hm-Login_InputField.Hidden[type="password"]')))
passwdele.send_keys('xxxxxxxxxxx')
btnelement=wait.until(expected_conditions.element_to_be_clickable((By.CSS_SELECTOR,'div.hm-Login_PasswordWrapper button.hm-Login_LoginBtn')))

btnelement.click()
0 голосов
/ 18 апреля 2019

Во-первых, проверьте, находятся ли поля «Имя пользователя» и «Пароль» внутри фрейма, если они находятся внутри переключателя IFrame, а затем выполните его, это случилось со мной один раз, когда я пропустил часть фреймов, поэтому надеюсь, что это поможет вам:)

0 голосов
/ 16 апреля 2019

Пожалуйста, проверьте ниже XPath, используя следующий брат

Username (XPath) - //div[@class='class="hm-Login_PasswordWrapper']/following-sibling::input[1]
Password (XPath) - //div[@class='class="hm-Login_PasswordWrapper']/following-sibling::input[2]

Примечание - Пожалуйста, оставьте место для извлечения из упаковки <div class="hm-Login_PasswordWrapper ">

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...