统一的元素定位方法《Python实现Web UI自动化测试实战:Selenium 3/4+unittest/pytest+gitlab+jenkins》读书笔记
.find_element()
# encoding='utf-8'
from selenium import webdriver
from selenium.webdriver.common.by import By
from time import sleep
driver = webdriver.Chrome()
driver.get("http://sahitest.com/demo/index.htm")
sleep(2)
driver.find_element(By.LINK_TEXT, value="Window Open Test").click()
###############################
sleep(2)
driver.quit()
.find_elements()
页面元素定位方法- find_element_by_id
- find_element_by_xpath
- find_element_by_name
- find_element_by_class_name
- find_element_by_tag_name
- find_element_by_partial_link_text
- find_element_by_link_text
- find_element_by_css_selector
- find_elements_by_id
- find_elements_by_xpath
- find_elements_by_name
- find_elements_by_class_name
- find_elements_by_tag_name: 很容易冲突 ,所以很少用
- find_elements_by_partial_link_text: 部分匹配文字
- find_elements_by_link_text:完整匹配文字
- find_elements_by_css_selector
- 直接使用字符串来传递
- id
- name
- xpath
- css
其他方式不支持,可以使用By来传递
from selenium import webdriver
from time import sleep
driver = webdriver.Chrome()
driver.get('D:\Love\Chapter-4\4-2\test4_2-4.html')
# 直接传递locate type的方式只支持4种定位元素的方法,分别是id、name、XPath、CSS
# driver.find_element('id', 'myid').send_keys('id') # 支持id
# driver.find_element('name', 'myname').send_keys('name') # 支持name
# driver.find_element('xpath','//*[@id=“myid”]').send_keys('xpath') # 支持XPath
driver.find_element('css','#myid').send_keys('css') # 支持CSS
# driver.find_element('tagname', 'input').send_keys('input') # 不支持
sleep(3)
driver.quit()
- 使用By传递
导包: from selenium.webdriver.common.by import By
from selenium import webdriver
from selenium.webdriver.common.by import By
from time import sleep
driver = webdriver.Chrome()
driver.get('D:\Love\Chapter-4\4-2\test4_2-4.html')
# 通过引入common.by的包,可以完美支持前面讲过的8种定位元素的方法
# driver.find_element(By.ID,'myid').send_keys('id') # 支持id
# driver.find_element(By.NAME, 'myname').send_keys('name') # 支持name
# driver.find_element(By.XPATH,'//*[@id=“myid”]').send_keys('xpath') # 支持XPath
driver.find_element(By.TAG_NAME,'input').send_keys('tag name') # 支持tag name
sleep(3)
driver.quit()
定位组元素
点击复数定位元素中的第一个(下标0的元素)
# encoding='utf-8'
from selenium import webdriver
from selenium.webdriver.common.by import By
from time import sleep
driver = webdriver.Chrome()
driver.get("http://sahitest.com/demo/index.htm")
sleep(2)
link_texts = driver.find_elements(By.PARTIAL_LINK_TEXT, value="Test")
print(link_texts)
link_texts[0].click()
###############################
sleep(2)
driver.quit()
例子:判断某个复选框下的元素是否都被选中
lsys = driver.find_elements(By.NAME, "ids[]")
for lst in lsy:
if lst.is_selected():
print("pass")
else:
print("fail")



