python自动化
find_element
from time import sleep
from selenium import webdriver
browser = webdriver.Firefox()
browser.get(“http://127.0.0.1:8080/oa/”)
sleep(2)
定位元素,使用元素的class属性值定位
ele = browser.find_element_by_class_name(“loginInput”)
print(type(ele))
ele.send_keys(“sup”)
sleep(1)
ele.clear() # 清除元素的内容
sleep(1)
ele.send_keys(“sup”)
sleep(1)
使用css定位元素
browser.find_element_by_css_selector("#loginDiv > div:nth-child(5) > form:nth-child(1) > div:nth-child(2) > div:nth-child(2) > table:nth-child(1) > tbody:nth-child(2) > tr:nth-child(2) > td:nth-child(2) > input:nth-child(1)").send_keys(“s1234567”)
sleep(1)
#使用xpath定位
browser.find_element_by_xpath(’//*[@id=“button_submit”]’).click()点击登录按钮
sleep(3)
使用link_text定位
browser.find_element_by_link_text(“新建事项”).click()
sleep(1)
使用patrial_link_text定位
browser.find_element_by_partial_link_text(“已发”).click()
sleep(1)
当class属性值中有空格时,空格必须使用.代替
browser.find_element_by_class_name(“ui-icon.ui-icon-triangle-1-e”).click()
sleep(1)
使用标签定位
browser.find_element_by_tag_name(“a”).click()
sleep(5)
browser.quit()
find_element_and_by
from time import sleep
from selenium import webdriver
from selenium.webdriver.common.by import By
browser = webdriver.Firefox()
browser.get("http://127.0.0.1:8080/oa")
sleep(2)
在find_element中通过By模块指定元素的定位方式,并传入该方式对应的值来定位元素
下面展示一些 自动化代码片
。
browser.find_element(By.CLASS_NAME, "loginInput").send_keys("sup")
browser.find_element(By.NAME, "password").send_keys("s1234567")
browser.find_element(By.XPATH, '//input[contains(@id, "button_")]').click()
find_element_css
from time import sleep
from selenium import webdriver
browser = webdriver.Firefox()
browser.get("http://127.0.0.1:8080/oa")
sleep(2)
# 在css定位中使用元素的不同属性定位
# 在css中使用Class属性值定位
browser.find_element_by_css_selector('[class="loginInput"]').send_keys("sup")
sleep(1)
# 在css中使用Class属性值定位第二种写法:在class属性值前加点
browser.find_element_by_css_selector('.loginInput').clear()
sleep(1)
# 在css中使用name属性值定位
browser.find_element_by_css_selector('[name="loginId"]').send_keys("sup")
sleep(1)
#在css中使用tabindex定位
browser.find_element_by_css_selector('[tabindex="1"]').clear()
sleep(1)
# 在css中使用多个属性定位
browser.find_element_by_css_selector('[class="loginInput"][name="loginId"][tabindex="1"]').send_keys("sup")
sleep(1)
# 在css中使用标签+属性定位
browser.find_element_by_css_selector('tr>td>input[class="loginInput"][type="password"]').send_keys("s1234567")
sleep(1)
#在css中使用id定位
# browser.find_element_by_css_selector('[id="button_submit"]').click()
sleep(1)
#在css中使用id定位第二种写法:在id的属性值前加#
browser.find_element_by_css_selector('#button_submit').click()
sleep(2)
#在css中使用class属性值定位时,class属性值中有空格时,空格必须使用点代替
browser.find_element_by_css_selector('.ui-icon.ui-icon-triangle-1-e').click()
find_element_by_xpath
from time import sleep
from selenium import webdriver
browser = webdriver.Firefox()
browser.get("http://127.0.0.1:8080/oa")
sleep(2)
# 在xpath中使用相对路径(//开头+标签组成相对路径)和元素的属性定位
# 在xpath中使用单层标签组成的相对路径与class属性定位元素
browser.find_element_by_xpath('//input[@class="loginInput"]').send_keys("sup")
sleep(1)
# 在xpath中使用多个元素属性定位
browser.find_element_by_xpath('//input[@class="loginInput" and @name="loginId" and @tabindex="1"]').clear()
sleep(1)
#在xpath中使用多层标签组成的相对路径及元素属性定位
browser.find_element_by_xpath('//tbody/tr/td[2]/input[@class="loginInput" and @name="loginId" and @tabindex="1"]').send_keys("sup")
sleep(2)
#在xpath中使用多层标签组成的相对路径及元素属性定位
browser.find_element_by_xpath('//tbody/tr[2]/td[2]/input[@class="loginInput"]').send_keys("s1234567")
sleep(1)
#在xpath中使用contains关键字定位元素
# 先找标签是input的元素,再看元素是否有id属性,如果有id,再看id的值是否包含字符串“button_s”,如果包含则定位到元素
browser.find_element_by_xpath('//input[contains(@id, "button_s")]').click()
sleep(2)
#在xpath中使用元素文本定位
#先找标签是a的元素,再看该元素的文本是否等于“新建事项”,如果相等则定位到元素
browser.find_element_by_xpath('//a[text()="新建事项"]').click()
sleep(1)
# 在xpath中使用contains关键字及元素的文本定位
#先找标签是a的元素,再看该元素的文本是否包含“发事”,如果包含则定位到元素
browser.find_element_by_xpath('//a[contains(text(), "发事")]').click()
sleep(1)
#在xpath中使用class属性定位时,如果class属性值中有空格,空格不能使用点代替
browser.find_element_by_xpath('//span[@class="ui-icon ui-icon-triangle-1-e"]').click()
find_elements
from time import sleep
from selenium import webdriver
from selenium.webdriver.common.by import By
browser = webdriver.Firefox()
browser.get("http://127.0.0.1:8080/oa")
sleep(2)
# 定位当前页面下所有class属性值等于loginInput的元素,并返回元素列表
ele_list = browser.find_elements_by_class_name("loginInput")
print(len(ele_list))
print(type(ele_list))
ele_list[0].send_keys("sup")
ele_list[1].send_keys("s1234567")
sleep(2)
# 遍历元素列表
for ele in ele_list:
ele.clear()
sleep(1)