【问题标题】:selenium webdriver python finding elements with out idselenium webdriver python查找没有id的元素
【发布时间】:2017-06-03 13:48:34
【问题描述】:

我是 selenium python 的新手,如何选择用户名字段和密码字段来自动登录页面。 没有为这两个字段提供 id。 这是源代码。

<div class='tablecss'>   
<table cellpadding='1' cellspacing='1' border='0' align='center'> <tr 
id='usernamelbl'><td style='color:#565656;text-align:left;'>
<label >Username</label></td></tr><tr id='usernametxt'>
<td><input type='text' name='username' maxlength='50' class='textbox' >
</td></tr>
<tr id='passwordlbl'><td style='color:#565656;text-align:left;'>
<label>Password</label></td></tr><tr><td>
<input type='password' name='password' autocomplete='off' 
class='textbox'>
</td></tr>
<tr><td>
<input type='submit' name='btnSubmit' value='Login' id='logincaption' 
class='button' style='color:#565656' /></td></tr></table></div> 

下面是我用来选择元素的代码:

user = driver.find_element_by_css_selector('#txtUserName')
user.send_keys('pv13')
password = driver.find_element_by_css_selector('#txtPassword')
password.send_keys('9979173')

【问题讨论】:

    标签: python selenium selenium-webdriver automation


    【解决方案1】:

    正如您在这里所做的那样,它不会起作用,因为没有 ID 'txtUserName' 或 'txtPassword'。

    如果你想选择用户名和密码的输入,你可以简单地通过 xpath 来完成。

    例如:

    user_name_input = driver.find_element_by_xpath('//input[@name="username"]')
    user_name_input.send_keys('pv13')
    password_input = driver.find_element_by_css_selector('//input[@name="password"]')
    password_input.send_keys('9979173')
    

    希望有所帮助!

    【讨论】:

    • @user124384,你为什么不赞成我的回答?你能给我一个解释或告诉我你的代码吗?这应该可以在这些输入中插入用户名和密码
    • 因为,正如我所说,它对我不起作用。尽管在某些情况下它可能会起作用,但在我的情况下它是不完整的。使用find_elements_by_name 就足够了,我还需要输入sleep(7) 以便页面首先加载。
    • 是的,您需要添加延迟,因为页面需要时间来加载。这是页面本身的问题,而不是代码。
    猜你喜欢
    • 2014-08-13
    • 2012-05-28
    • 1970-01-01
    • 1970-01-01
    • 2021-03-31
    • 1970-01-01
    • 2021-06-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多