我正在尝试将用户名和密码传递给具有多个类结构的登录页面。
我已经尝试了各种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定位
答案 0 :(得分:1)
尝试使用速度更快的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()
答案 1 :(得分:0)
请在下面使用同级兄弟检查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 ">
答案 2 :(得分:0)
首先,检查Username和Password字段是否在Frame内,如果它们在IFrame开关内,然后执行该命令,因为我错过了frame部分,它就发生在我身上,希望对您有帮助:)< / p>