Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
选择同名的第二个DIV类-Python Selenium_Python_Selenium Webdriver - Fatal编程技术网

选择同名的第二个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 Jain

elem=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()