首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Selenium元素定位

Selenium元素定位

原创
作者头像
用户5713782
发布2025-07-07 21:54:19
发布2025-07-07 21:54:19
2060
举报

Summary:

selenium自动化测试框架PO设计模式

1.Online resource

For really impatience:

Selenium 八种元素定位方法

selenium自动化测试框架PO设计模式

1.1-Selenium是什么?Selenium自动化测试介绍

Selenium - 知乎

For dummies:

零基础如何学习自动化测试

深入了解自动化:对自动化测试的误解

2. Overview

What is selenium?

Selenium是一个免费的(开源)自动化测试组件,适用于跨不同浏览器和平台的Web应用程序。它非常类似于HP Quick Test Pro (QTP现在叫UFT),只是Selenium侧重于自动化基于Web的应用程序。使用Selenium工具进行的测试通常称为Selenium测试。

Selenium不仅仅是一个工具,而是一套软件,每个软件都满足组织的不同测试需求。它有四个组成部分:

1.Selenium集成开发环境(IDE)

2.Selenium远程控制 (RC)

3.WebDriver

4.Selenium Grid

3. selenium自动化测试框架PO设计模式

PO 的核心要素:

在 PO 模式中抽象封装成一个BasePage 类,该基累应该拥有一个只实现 webdriver 实例的属性.

每个一个 page 都继承 BasePage,通过 driver 来管理本 page 中元素,讲 page 中的操作封装成一个个的方法.

TestCase 继承 unittest.Testcase 类,并且依赖 page 类,从而实现相应的测试步骤.

根据什么定位元素

1.根据元素的name属性进行定位(find_element_by_name())

webDriver.findElement(By.name(“phrase”));

2.根据文本链接进行定位(find_element_by_link_text())

webDriver.findElement(By.linkText(“发表”));

3.根据元素的id属性进行定位(find_element_by_id())

webDriver.findElement(By.id(“title”));

4.根据元素的class属性进行定位(find_element_by_class_name())

webDriver.findElement(By.className(“note-editable”));

5.根据css定位元素,css属性定位能够灵活地选择控件的任意属性。(find_element_by_css_selector())

webDriver.findElement(By.cssSelector(“li:nth-child(2)”)).click();

6.根据元素的标签名进行定位(find_element_by_tag_name())

webDriver.findElement(By.tagName(“phrase”));

7.根据xpath的绝对路径或者相对路径进行定位,这种定位方式最精准,最可靠。(xpath可定位任何元素)(find_element_by_xpath())

webdriver.findElement(By.xpath(“//img[@alt=‘div1-img1’]”));

例子

5.1 下拉框定位的例子

from selenium import webdriver

from selenium.webdriver.support.select import Select #首先必须要导入select包才能定位

from time import sleep

dr = webdriver.Chrome()

dr.get(r’D:\下拉框.html’)

#先定位到水果框,用变量selectfruit

selectFruit = dr.find_element_by_id(‘fruit’)

#再定位到具体的元素,菠萝

Select(selectFruit).select_by_visible_text(‘菠萝’)

5.2 send_keys()自动化上传

AI写代码

1

from selenium import webdriver

import time

driver = webdriver.Firefox()

driver.get(r’file:///e:/CnblogCode/upload_file.html’)

upload_element = driver.find_element_by_xpath(‘//*[@id=“upload_file”]’)

time.sleep(3) # 为了看效果

upload_element.send_keys(r’E:\CnblogCode\upload_file.html’)

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档