selenium基础知识1

一、元素的8种定位  (以百度为例)

#导入所需要的包

from selenium import webdriver

dr = webdriver.Chrome()

dr.get("https://www.baidu.com/")

1、通过id定位

dr.find_element_by_id("kw").send_keys("selenium自动化")

2.通过name定位

dr.find_element_by_name("").send_keys("selenium自动化")

3、通过class_name定位

dr.find_element_by_class_name("s_ipt").send_keys("selenium自动化")

4、通过link_text定位

dr.find_element_by_link_text("新闻").click()

5.通过partail_link_text定位

dr.find_element_by_link_text("新闻").click()

dr.find_element_by_partail_link_text("主持中央深化").click()

6.通过tag_name来定位

input1 = dr.find_elements_by_tag_name("input")
for input2 in input1:
if input2.get_attribute("class") == "s_ipt" \
and input2.get_attribute("autocomplete") =="off"

dr.input1.send_keys

7.通过xpath定位

dr.find_element_by_xpath(‘//input[@id="kw"]‘).send_keys("天行健,君子当自强不息")

8.通过css_selector定位

dr.find_element_by_css_selector(input[name=id]).send_keys("天行健,君子当自强不息")

dr.find_element_by_css_selector("#kw").send_keys("天行健,君子当自强不息")

二、By类

from selenium import webdriver

#导入By类的包
from selenium.webdriver.common.by import By

dr = webdriver.Chrome()
dr.get("https://www.baidu.com/")
# dr.find_element(By.ID,"kw").send_keys("selenium自动化")
# dr.find_element(By.CLASS_NAME,"s_ipt").send_keys("selenium")
# dr.find_element(By.XPATH,‘//input[@id="kw"]‘).send_keys("selenium自动化")
# dr.find_element(By.CSS_SELECTOR,"input[autocomplete=off]").send_keys("web自动化")
dr.find_element(By.LINK_TEXT,"新闻").click()
dr.find_element(By.PARTIAL_LINK_TEXT,"中国国际进口").click()

三、设置元素等待。三种方式

1、sleep(s) python time模块下面的方法

2、implicitly_wait(s)     webdriver   隐式等待(就是在创建driver时,为浏览器对象创建一个等待时间,这个方法是得不到某个元素就等待一段时间,直到拿到某个元素位置。)

例:

from selenium import webdriver

dr = webdrier.Chrome()

dr.implicitly_wait(5)

dr.get("https//www.baidu.com/")

dr.find_element_by_id("kw").send_keys("selenium自动化")

dr.find_element_by_id("su").click()

3、webDriverWait显示等待(显示等待是应该使用 selenium.webdriver.support.excepted_conditions期望的条件和selenium.webdriver.support.ui.webDriverWait 来配合完成。)

例:

from selenium import webdriver

from time import ctime

from.selenium.webdriver.support.ui import webDriverWait

dr = webdriver.Chrome()

dr.get("https//www.baidu.com")

#WebDriverWait显示等待 Selenium模块中的EC类提供的方法
print ("%s"%ctime())
try:
wait = WebDriverWait(dr,5,0.5).until(lambda dr:dr.find_element_by_id("kddaw"))
except:
print ("%s"%ctime())

原文地址:https://www.cnblogs.com/sjjhw/p/9960976.html

时间: 2024-10-07 16:08:13

selenium基础知识1的相关文章

Selenium基础知识

本人博客文章网址:https://www.peretang.com/basic-knowledge-of-selenium/ 什么是Selenium Selenium是一个自动化测试工具 是一组不同的工具 其支持在多个浏览器平台上执行测试 为什么需要Selenium 1. 使原本手动的测试变成自动化 2. 更容易完成频繁的回归测试 3. 更快速的反馈给开发人员与测试人员 4. 几乎无限次迭代的测试执行 5. 更有纪律的测试用例 6. 自动生成缺陷报告 7. 补充手动测试的遗漏 Selenium组

selenium自动化基础知识

什么是自动化测试? 自动化测试分为:功能自动化和性能自动化 功能自动化即使用计算机通过编码的方式来替代手工测试,完成一些重复性比较高的测试,解放测试人员的测试压力.同时,如果系统有不份模块更改后,只要通过修改部分代码的方式来覆盖这部分修改的内容,大大提高测试效率.但是后期代码维护需要一定的成本,如果系统属于表单比较多或者经常修改改动的系统不太适合使用自动化,因为这个维护成本太高:针对于一些相对比较成熟(改动不是很频繁)的系统和跑回归测试的系统很适合进行自动化测试. 性能自动化即使用性能测试工具(

Python3分布式爬虫(scrap+redis)基础知识和实战详解

背景 随着业务需求的变化,大规模爬虫遇到各种问题.python爬虫具有先天优势,社区资源比较齐全,各种框架也完美支持.爬虫性能也得到极大提升.本次分享从基础知识入手,涉及python 的两大爬虫框架pyspider.scrapy,并基于scrapy.scrapy-redis 做了分布式爬虫的介绍(直接粘贴的ppt截图)会涉及 redis.mongodb等相关知识. 一.前沿 1.1 爬虫是什么? 网络爬虫(又被称为网页蜘蛛,网络机器人),是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本.

学 Java 网络爬虫,需要哪些基础知识?

说起网络爬虫,大家想起的估计都是 Python ,诚然爬虫已经是 Python 的代名词之一,相比 Java 来说就要逊色不少.有不少人都不知道 Java 可以做网络爬虫,其实 Java 也能做网络爬虫而且还能做的非常好,在开源社区中有不少优秀的 Java 网络爬虫框架,例如 webmagic .我的第一份正式工作就是使用 webmagic 编写数据采集程序,当时参与了一个舆情分析系统的开发,这里面涉及到了大量网站的新闻采集,我们就使用了 webmagic 进行采集程序的编写,由于当时不知道其设

MySQL数据库基础知识

day02 MySQL数据库基础知识 一.基础知识概述: 基础决定你这门课程的学习成败!只有学习好这些基础知识以后,你才能真正的运用自如.才能够对数据库有更深入的了解,道路才会越走越远. 二.基础知识: 1.数据库(database):数据库就好比是一个物理的文档柜,一个容器,把我们整理好的数据表等等归纳起来. 创建数据库命令:        create database 数据库名; 2.查看数据库         show databases; 3.打开指定的数据库         use 

linux入门基础知识及简单命令介绍

linux入门基础知识介绍 1.计算机硬件组成介绍 计算机主要由cpu(运算器.控制器),内存,I/O,外部存储等构成. cpu主要是用来对二进制数据进行运算操作,它从内存中取出数据,然后进行相应的运算操作.不能从硬盘中直接取数据. 内存从外部存储中取出数据供cpu运存.内存的最小单位是字节(byte) 备注:由于32的cpu逻辑寻址能力最大为32内存单元.因此32位cpu可以访问的最大内存空间为:4GB,算法如下: 2^32=2^10*2^10*2^10*2^2 =1024*1024*1024

BroadcastReceive基础知识总结

BroadcastReceive基础知识总结 1.BroadcastReceive简介 BroadcastReceive也就是"广播接收者"的意思,顾名思义,就是用来接收来自系统和应用中的广播 在Android系统中,广播体现在方方面面,例如当开机完成后系统会产生一条广播,接收到这条广播就能实现开机启动服务的功能,当网络状态改变时,系统会产生一条广播,接收到这条广播,就能及时的做出提示和保存数据等操作,当电池的电量改变的时候,系统会产生一条广播,接收到这条广播就能在电量低的时候告知用户

基础知识--:before伪元素和:after伪元素

http://book.51cto.com/art/201108/285688.htm 3.7  替换指定位置 大家都知道before和after是前.后的意思.但是奇怪的是,CSS中的:before伪元素和:after伪元素是为源文档中不存在的内容设置样式的. 没有内容怎么设置样式呢?别急!它们有一个content属性,一起使用就可以为某个选择器前.后的内容设置样式了. 下面就来了解一下:before伪元素和:after伪元素的用法. 视频教学:光盘/视频/3/3.7  替换指定位置.avi 

20_Shell语言———VIM编辑器基础知识三之窗口属性定制、配置文件及查找替换功能

Vim编辑器可以让用户按照需求来定制一些使用属性. 一.窗口属性定义 1)显示行号 行号不是内容,只是用来帮助用户确认文本所在的行.在vim编辑器中,如果要显示行号,可以在末行模式下输入: set number 如果想关闭,则可以在功能名称前面加上no,即: set nonumber 命令可以被简写,如set number 可以简写为 set nu:set nonumber 可以简写为 set nonu. 注意,上述设定仅对当前vim的进程有效,一旦当前进程关闭,这些设定就会失效,如果要使设定永