栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Selenium元素定位方法

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Selenium元素定位方法

Selenium元素定位方法

《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

使用find_element(‘locator’, ‘value’)定位元素
  1. 直接使用字符串来传递
    1. id
    2. name
    3. xpath
    4. 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()
  1. 使用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")
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/998325.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号