做了自动化测试这么久了, 一直没有梳理到元素定位这一块的内容, 其重要性不言而喻趁着周末有时间, 梳理一下
1, 通过 id 定位
- driver.find_element_by_CSS_selector("#kw").clear()
- driver.find_element_by_css_selector("#kw").send_keys("selenium")
2, 通过 class 定位
driver.find_element_by_css_selector("input.bg").click()
其中 class 的值之间有空格时, 只需要在空格中间加个点号就可以
如:
driver.find_element_by_css_selector("div.clearfix.oe_login_buttons)click()
3, 通过属性定位
driver.find_element_by_css_selector("[placeholder = 请输入密码]").clear()
4, 通过元素的层级定位
driver.find_element_by_css_selector("div.clearfix.oe_login_buttons>button.btn.btn-primary").click()
工作中经常用的定位方法是通过儿子找父亲, 再找父亲的兄弟不知道 CSS 能不能实现后续再补充与更新反正 XPATH 是可以实现的
最后上一段完整的代码吧
- from selenium import webdriver
- import time
- driver=webdriver.Chrome()
- driver.maximize_window()
- driver.implicitly_wait(20)
- driver.get("http://www.***************")
- driver.find_element_by_css_selector("[name=login]").clear()
- driver.find_element_by_css_selector("[name=login]").send_keys(u"大猩猩")
- driver.find_element_by_css_selector("[placeholder = 请输入密码]").clear()
- driver.find_element_by_css_selector("[placeholder = 请输入密码]").send_keys("13*********")
- driver.find_element_by_css_selector("div.clearfix.oe_login_buttons>button.btn.btn-primary").click()
- time.sleep(3)
- driver.quit()
来源: http://www.bubuko.com/infodetail-2545194.html