美文网首页
Web UI自动化-元素定位

Web UI自动化-元素定位

作者: candice0430 | 来源:发表于2022-08-16 10:00 被阅读0次

selenium元素定位方式有以下八种:


元素定位8中方式

本文主要介绍css_selector方式进行定位

css_selector方式定位元素:

  • 通过ID和Class定位
  • 通过绝对路径和相对路径定位
  • 通过属性定位
  • 通过模糊属性定位
  • 通过层级关系定位
  • 通过兄弟节点定位

前提准备:

1.python 环境安装
2.pip install selenium
3.浏览器驱动安装,本文选择chrome driver,将驱动放到工程下或者配置环境变量(ps:注意浏览器版本和驱动要一致哦)
4.编写代码打开浏览器

from selenium import webdriver
from selenium.webdriver.common.by import By
import time

driver = webdriver.Chrome()
driver.get('http://www.baidu.com')
time.sleep(2)
1.通过ID和Class定位

以百度页面搜索为例

  • 通过F12查看元素
<input id="kw" name="wd" class="s_ipt" value="" maxlength="255" autocomplete="off">
  • 通过ID查找元素:#
driver.find_element(By.CSS_SELECTOR,value='#kw').sendkeys('hello')
  • 通过Class查找:.
driver.find_element(By.CSS_SELECTOR,value='.s_ipt').sendkeys('hello')
2.通过相对路径和绝对路径查找: 上下级关系用>或空格
  • 通过F12查看元素


    image.png
  • 通过绝对路径查找元素:> 或空格
driver.find_element(By.CSS_SELECTOR,value='html>body>div>div>div>div>div>form>span>input').sendkeys('hello')
driver.find_element(By.CSS_SELECTOR,value='html body div div div div div form span input').sendkeys('hello')
  • 通过相对路径查找:
driver.find_element(By.CSS_SELECTOR,value='form span input').sendkeys('hello')
driver.find_element(By.CSS_SELECTOR,value='form>span>input').sendkeys('hello')
3.通过属性定位:
  • 通过F12查看元素
<input id="kw" name="wd" class="s_ipt" value="" maxlength="255" autocomplete="off">
  • 通过属性[]:autocomplete="off"
driver.find_element(By.CSS_SELECTOR,value=["autocomplete='off'"]).sendkeys('hello')
4.通过属性模糊定位:

(1)*:包含
(2)^:以什么开头
(3)$:以什么结尾

  • 通过F12查看元素
<input id="kw" name="wd" class="s_ipt" value="" maxlength="255" autocomplete="off">
  • 通过属性[]:autocomplete="off"
driver.find_element(By.CSS_SELECTOR,value=["autocomplete*='ff'"]).sendkeys('hello')
driver.find_element(By.CSS_SELECTOR,value=["autocomplete^='of'"]).sendkeys('hello')
driver.find_element(By.CSS_SELECTOR,value=["autocomplete$='f'"]).sendkeys('hello')
5.层级关系,一般会和id和class结合使用,并运用上下级关系:
  • 通过F12查看元素


    image.png
  • 确定层级关系:form-span-input

driver.find_element(By.CSS_SELECTOR,value="form#form>span>input").sendkeys('hello')
driver.find_element(By.CSS_SELECTOR,value="form.fm span input").sendkeys('hello')
6.通过兄弟节点定位:

(1)第一个节点:first-child
(2)第2、3、4...n个节点:nth-child(n)
(3)最后一个节点:last-child

  • 通过F12查看元素


    image.png
  • 确定层级关系:form-span-input
driver.find_element(By.CSS_SELECTOR,value="div#s-top=left a:first_child").click()
# 第二个节点
driver.find_element(By.CSS_SELECTOR,value="div#s-top=left>a:nth-child(2)").click()
driver.find_element(By.CSS_SELECTOR,value="div#s-top=left a:last-child").click()

相关文章

网友评论

      本文标题:Web UI自动化-元素定位

      本文链接:https://www.haomeiwen.com/subject/wzsrgrtx.html