选择同名的第二个DIV类-Python Selenium
我可以选择第一个选择同名的第二个DIV类-Python Selenium,python,selenium-webdriver,Python,Selenium Webdriver,我可以选择第一个class=“hm-Login\u InputField”>fine并传入用户名 <div class="hm-Login "> <div class="hm-Login_UserNameWrapper "> <input type="text" class="hm-Login_InputField "> <div class="hm-Login_InputText ">Join</di
class=“hm-Login\u InputField”>
fine并传入用户名
<div class="hm-Login ">
<div class="hm-Login_UserNameWrapper ">
<input type="text" class="hm-Login_InputField ">
<div class="hm-Login_InputText ">Join</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>
elem = driver.find_element_by_class_name("hm-Login_InputField")
elem.click()
elem.send_keys("xxxxx")
如何选择第二个文本输入/密码文本框
我需要相对Xpath吗?这是如何派生的
我试过:
elem = driver.find_element_by_class_name("hm-Login_InputField Hidden ")
elem.click()
elem.send_keys("xxxxx")
NoSuchElementException:没有这样的元素:无法定位元素:{“方法”:“css选择器”,“选择器”:.hm-Login_InputField Hidden”}
(会话信息:chrome=77.0.3865.120)
如果有时它能工作,可能是因为某个元素加载速度较慢。在调用第二个元素并查看它是否工作之前,请尝试添加
time.sleep(2)
。
也可以使用
驱动程序,而不是驱动程序。通过类名称(“hm-Login\u InputField Hidden”)查找元素。
您可以使用驱动程序。通过类名称(“hm-Login\u InputField”)
查找元素,这将返回类名称为的所有元素。“hm-Login\u InputField”
。然后元素[0]
将是您的第一个输入元素[1]
第二帧,然后继续。检查是否存在任何帧如果是,则需要切换到第一帧
也可以添加wait first,比如explict wait,比如elementlocated的可见性
或elementlocated的存在性
还可以尝试以下xpath:
//input[@type='password']
或
此xpath成功:
Elem = driver.find_element_by_xpath(**"//div[@class='hm-Login_PasswordWrapper ']//input[@type='text']")**
elem.click()
elem.clear()
我现在可以选择这个框了
谢谢@Shubham Jainelem=driver。通过xpath(//div[@class='hm-Login\u PasswordWrapper']//input[@type='text']])查找元素元素元素元素元素元素元素元素元素元素。单击()元素元素。清除()我现在可以选择框,但是现在我不能。sendkeys()。我正在获取元素NotInteractiableException:元素不可交互我尝试在WebDriverWait中添加(驱动程序,5).直到(EC.element可点击((By.XPATH,//div[@class='hm-Login\u PasswordWrapper']//input[@type='text'])))。点击()和.driver.隐式等待(10)#秒都不成功…这是www.bet365.com.au网站上的一个…如果您想尝试。如果您的问题有疑问,请接受答案解决…对于新问题,请创建另一个问题..这就是stack的工作方式及其策略声明
//div[@class='hm-Login ']//div[@class='hm-Login_PasswordWrapper ']//input[@type='password']
Elem = driver.find_element_by_xpath(**"//div[@class='hm-Login_PasswordWrapper ']//input[@type='text']")**
elem.click()
elem.clear()