我正在尝试找到元素1.密码2.提交按钮
来自firebug的CSS路径:
密码:
...textfield-1023.x-field.loginpage-email-textfield.x-form-item.x-form-item-default.x-form-type-text.x-box-item.x-field-default.x-vbox-form-item...
按钮
...
button-1028.x-btn.loginpage-login-button.x-unselectable.x-box-item.x-toolbar-item.x-btn-default-small span#button-1028-btnWrap.x-btn-wrap.x-btn-wrap-default-small
...
代码:
e_passwd = driver.find_element_by_css_selector(".loginpage-password-textfield")
action_passwd = ActionChains(driver)
action_passwd.move_to_element(e_passwd)
action_passwd.click(e_passwd)
action_passwd.send_keys("symbol")
action_passwd.perform()
e_submit = driver.find_element_by_css_selector(".loginpage-login-button")
action_button = ActionChains(driver)
action_button.move_to_element(e_submit)
action_button.click(e_submit)
action_button.perform()
此代码能够找到并单击“提交”按钮,但无法找到密码字段。
我需要使用其他方法来查找textfield
元素吗?
答案 0 :(得分:1)
Firebug
是一个很棒的工具。但是并不总是能满足你的需求。因此,有时知道如何手动编写选择器会很有帮助。见thread
简单地使用。 Css
允许您使用[]
添加多个属性,以便唯一地标识元素。
[placeholder='Password'][type='password']
如果您想将xpath
与find_element_by_xpath
一起使用,还可以使用以下选项:
//input[@placeholder='Password'][@type='password']
或
//input[@placeholder='Password' and @type='password']
as @alecxe建议
Api doc是here