python Selenium 库的使用技巧

这篇具有很好参考价值的文章主要介绍了python Selenium 库的使用技巧。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Selenium 是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE,Mozilla Firefox,Safari,Google Chrome,Opera等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成 .Net、Java、Perl等不同语言的测试脚本。 -- 百度百科

首先下载驱动文件:https://chromedriver.storage.googleapis.com/index.html?path=2.39/

放入google目录下

python Selenium 库的使用技巧,python,selenium,软件测试,程序员,接口测试,自动化测试,测试工程师

测试代码,测试是否能读取到驱动文件。

1

2

3

4

5

6

7

8

from selenium import webdriver

path = "C:/Users/LyShark/AppData/Local/Google/Chrome/Application/chromedriver.exe"

driver = webdriver.Chrome(executable_path=path)

url = "https://www.baidu.com"

driver.get(url)

print(driver.page_source)

python Selenium 库的使用技巧,python,selenium,软件测试,程序员,接口测试,自动化测试,测试工程师

简单的实现浏览器测试

1

2

3

4

5

6

7

8

9

10

# -*- coding:utf-8 -*-

from selenium import webdriver

WebPath = "C:/Users/LyShark/AppData/Local/Google/Chrome/Application/chromedriver.exe"

driver = webdriver.Chrome(executable_path=WebPath)

driver.set_window_size(1000,500)

url = "https://www.baidu.com"

driver.get(url)

print(driver.find_element_by_id("kw"))

Selenium 自动化测试库的使用:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

<!DOCTYPE html>

<html lang="en">

<head>

  <meta charset="gbk">

  <title>Selenium Test</title>

</head>

<body>

  <div class="acount" id="aid">

    <a class="mnav" href="https://news.baidu.com" rel="external nofollow" name="trnews">新闻</a>

    <a class="mnav" href="https://lyshark.cnblogs.com" rel="external nofollow" name="myblog">我的博客</a>

    <a class="mnav" href="https://github.com/lyshark" rel="external nofollow" name="mygit">GitHub</a>

  </div>

  <form id="forms" class="fms" name="submit_form" action="index.html">

    <span class="soutu-btn"></span>

    <p>用户: <input id="user" class="s_ipt" name="wd" value="" maxlength="255" autocomplete="off"></p>

    <p>密码: <input id="pass" class="s_ipt" name="wd" value="" maxlength="255" autocomplete="off"></p>

    <input type="submit" value="提交" />

  </form>

  <p name="p1" > hello lyshark p1</p>

  <p name="p2" > hello lyshark p2</p>

</body>

</html>

通过简单的浏览文件并实现简单的定位.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

# 驱动下载地址: http://chromedriver.storage.googleapis.com/index.html

from selenium import webdriver

WebPath = "C:/Users/LyShark/AppData/Local/Google/Chrome/Application/chromedriver.exe"

driver = webdriver.Chrome(executable_path=WebPath)

driver.set_window_size(1024,768)

# 常用的定位变量参数如下所示.

driver.get("http://lyshark.com")

print("当前URL: {}".format(driver.current_url))

print("当前标题: {}".format(driver.title))

print("网页代码: {}".format(driver.page_source))

# 基本的 find_element 标签查找定位方式

print(driver.find_element_by_id("user"))     # 通过ID来查找元素

print(driver.find_element_by_name("p1").text)   # 通过name属性来定位

print(driver.find_element_by_class_name("s_ipt")) # 通过类名来定位

# 通过xpath定位,xpath定位有N种写法,这里列几个常用写法

print(driver.find_element_by_xpath("//form[@class='fms']//input[@id='user']"))

print(driver.find_element_by_xpath("//p[@name='p1']"))

print(driver.find_element_by_xpath("//html/body/form/p/input"))

print(driver.find_elements_by_css_selector(".fms #user"))

# 定位a标签中的关键字.

print(driver.find_element_by_link_text("新闻"))

print(driver.find_element_by_partial_link_text("我"))

通过xpath定位标签并自动输入内容,发送登录请求到后端,写法如下.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

from selenium import webdriver

WebPath = "C:/Users/LyShark/AppData/Local/Google/Chrome/Application/chromedriver.exe"

driver = webdriver.Chrome(executable_path=WebPath)

driver.set_window_size(1024,768)

driver.get("http://lyshark.com")

# 通过xpath语法定位到用户名的标签上并且自动输入lyshark这个用户名

driver.find_element_by_xpath("//form[@class='fms']/p//input[@id='user']").send_keys("lyshark")

# 通过xpath语法定位到密码的标签上清空默认值,然后输入123123密码

driver.find_element_by_xpath("//form[@class='fms']/p//input[@id='pass']").clear()

driver.find_element_by_xpath("//form[@class='fms']/p//input[@id='pass']").send_keys("123123")

# 提交这个请求,默认有两种提交方式一种是 click() 一种是submit()

driver.find_element_by_xpath("//form[@class='fms']/input[@type='submit']").click()

通过键盘鼠标类库记录并可回放

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

from selenium import webdriver

from selenium.webdriver import ActionChains

from selenium.webdriver.common.keys import Keys

WebPath = "C:/Users/LyShark/AppData/Local/Google/Chrome/Application/chromedriver.exe"

driver = webdriver.Chrome(executable_path=WebPath)

driver.set_window_size(1024,768)

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

# ------------------------------------------------------------------------

# ActionChains 类提供了鼠标操作的常用方法,鼠标事件的常用函数说明

# perform():    鼠标悬浮于标签

# context_click(): 右击

# double_click():  双击

# drag_and_drop(): 拖动

# move_to_element():鼠标悬停

# 定位到要悬停的元素

above = driver.find_element_by_link_text("更多产品")

# 对定位到的元素执行鼠标悬停操作

ActionChains(driver).move_to_element(above).perform()

# ------------------------------------------------------------------------

# webdriver.common.keys 类提供了键盘事件的操作,以下为常用的键盘操作:

# send_keys(Keys.BACK_SPACE) 删除键(BackSpace)

# send_keys(Keys.SPACE) 空格键(Space)

# send_keys(Keys.TAB) 制表键(Tab)

# send_keys(Keys.ESCAPE) 回退键(Esc)

# send_keys(Keys.ENTER) 回车键(Enter)

# send_keys(Keys.CONTROL,'a') 全选(Ctrl+A)

# send_keys(Keys.CONTROL,'c') 复制(Ctrl+C)

# send_keys(Keys.CONTROL,'x') 剪切(Ctrl+X)

# send_keys(Keys.CONTROL,'v') 粘贴(Ctrl+V)

# send_keys(Keys.F1) 键盘 F1

# 输入框输入内容

driver.find_element_by_id("kw").send_keys("seleniumm")

# 删除多输入的一个 m

driver.find_element_by_id("kw").send_keys(Keys.BACK_SPACE)

# 输入空格键+从入门到入土

driver.find_element_by_id("kw").send_keys(Keys.SPACE)

driver.find_element_by_id("kw").send_keys("从入门到入土")

# ctrl+a 全选输入框内容

driver.find_element_by_id("kw").send_keys(Keys.CONTROL, 'a')

# ctrl+x 剪切输入框内容

driver.find_element_by_id("kw").send_keys(Keys.CONTROL, 'x')

# ctrl+v 粘贴内容到输入框

driver.find_element_by_id("kw").send_keys(Keys.CONTROL, 'v')

# 通过回车键来代替单击操作

driver.find_element_by_id("su").send_keys(Keys.ENTER)

简单的点击事件

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

# -*- coding:utf-8 -*-

from selenium import webdriver

import time

WebPath = "C:/Users/LyShark/AppData/Local/Google/Chrome/Application/chromedriver.exe"

driver = webdriver.Chrome(executable_path=WebPath)

driver.set_window_size(1024,768)

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

driver.find_element_by_id("kw").send_keys("lyshark") # 发送给id=kw的编辑框,搜索关键字 lyshark

driver.find_element_by_id("su").click()        # 点击搜索按钮,百度一下的ID是su

time.sleep(1)

# xpath 语法 寻找 div id是1里面的 a标签取出标签中的 contains text()

driver.find_element_by_xpath("//div[@id='1']//a[contains(text(),'-')]").click()

time.sleep(1)

handle = driver.current_window_handle  # 获取当前窗口句柄

handle_all = driver.window_handles   # 获取当前所有开启窗口的句柄

print(handle_all)

driver.switch_to.window(handle_all[0])  # 切换到第一个窗口中

time.sleep(1)

driver.find_element_by_id("kw").clear() # 接着清空搜索框中的内容

python Selenium 库的使用技巧,python,selenium,软件测试,程序员,接口测试,自动化测试,测试工程师

百度自动收集

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

from selenium import webdriver

from bs4 import BeautifulSoup

from queue import Queue

import requests,os,re,lxml

# driver: http://chromedriver.storage.googleapis.com/index.html?path=79.0.3945.36/

head = {"User-Agent":"Mozilla/5.0 (iPhone; U; CPU like Mac OS X) AppleWebKit/420.1 (KHTML, like Gecko) Version/3.0 Mobile/4A93 Safari/419.3"}

WebPath = "C:/Users/LyShark/AppData/Local/Google/Chrome/Application/chromedriver.exe"

driver = webdriver.Chrome(executable_path=WebPath)

queue = Queue()

for item in range(0,1000,10):

    queue.put('https://www.baidu.com/s?wd={}&pn={}'.format("lyshark",str(item)))

for item in queue.queue:

    driver.get(item)

    ret = str(driver.page_source)

    try:

        soup = BeautifulSoup(ret,'lxml')

        urls = soup.find_all(name='a',attrs={'data-click':re.compile(('.')),'class':None})

        for item in urls:

          get_url = requests.get(url=item['href'],headers=head,timeout=5)

          if get_url.status_code == 200:

            print(get_url.url)

    except Exception:

        pass

python Selenium 库的使用技巧,python,selenium,软件测试,程序员,接口测试,自动化测试,测试工程师

页面等待

1

2

3

4

5

6

7

8

9

10

11

12

13

from selenium import webdriver

driver=webdriver.Chrome()

driver.get('https://www.taobao.com/')

wait=WebDriverWait(driver,3) #设置监听driver等待时间3秒

input=wait.until(EC.presence_of_element_located((By.ID,'q'))) #设置等待条件为id为q的元素加载完成

button=wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR,'.btn-search'))) #设置等待条件为class名为btn-search的元素加载完成

print(input,button)

driver = webdriver.Firefox()

driver.implicitly_wait(10) #隐式等待设置为10等待时间

driver.get("http://somedomain/url_that_delays_loading")

myDynamicElement = driver.find_element_by_id("myDynamicElement")

键盘操作

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

element=driver.find_element_by_id('search') #获取输入框

element.send_keys('selenium') #搜索selenium包

element.send_keys(Keys.ENTER) #按回车键

element_a=driver.find_element_by_link_text('selenium') #定位selenium包链接

ActionChains(driver).move_to_element(element_a).click(element_a).perform() #按左键点击链接执行

element_down=driver.find_element_by_link_text('Download files') #定位下载链接

ActionChains(driver).move_to_element(element_down).click(element_down).perform() #按左键点击链接

element_selenium=driver.find_element_by_link_text('selenium-3.13.0.tar.gz') #定位元素selenium下载包链接

data=element_selenium.get_attribute('href'#获取链接地址

with open('selenium-3.13.0.tar.gz','wb') as f:

  source=requests.get(data).content  #请求下载链接地址获取二进制包数据

  f.write(source) #写入数据

  f.close()

   

driver.quit()

menu = driver.find_element_by_css_selector(".nav") #获取element对象

hidden_submenu = driver.find_element_by_css_selector(".nav #submenu1") #获取点击对象

#创建鼠标对象

actions = ActionChains(driver)

#移动鼠标到对象

actions.move_to_element(menu)

#点击对象

actions.click(hidden_submenu)

#执行操作

actions.perform()

​现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:485187702【暗号:csdn11】

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走! 希望能帮助到你!【100%无套路免费领取】

python Selenium 库的使用技巧,python,selenium,软件测试,程序员,接口测试,自动化测试,测试工程师

python Selenium 库的使用技巧,python,selenium,软件测试,程序员,接口测试,自动化测试,测试工程师文章来源地址https://www.toymoban.com/news/detail-816437.html

到了这里,关于python Selenium 库的使用技巧的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 软件测试|Python Selenium 库安装使用指南

    简介 Selenium 是一个用于自动化浏览器操作的强大工具,它可以模拟用户在浏览器中的行为,例如点击、填写表单、导航等。在本指南中,我们将详细介绍如何安装和使用 Python 的 Selenium 库。 安装 Selenium 库 使用以下命令可以通过 pip 安装 Selenium 库: 安装 WebDriver 安装selenium之

    2024年02月02日
    浏览(61)
  • Python中的selenium库的基本用法

    Selenium是一个用于测试网站的自动化测试工具,支持各种浏览器包括Chrome、Firefox、Safari等主流界面浏览器,同时也支持phantomJS无界面浏览器。 通过此行代码可以快速在Python中安装selenium库 pip install Selenium 另外,我们仍需要安装浏览器驱动 Selenium3.x调用浏览器必须有一个webdr

    2023年04月20日
    浏览(37)
  • selenium库的使用

    来都来了给我点个赞收藏一下再走呗🌹🌹🌹🌹🌹 目录 一、下载需要用到的python库selenium 二、selenium的基本使用 1.在python代码引入库 2.打开浏览器 3.元素定位 1)通过id定位 2)通过标签name属性定位 3)通过标签class属性定位 4)通过标签tag定位 5)通过link定位标签 6)通过元素的

    2024年02月04日
    浏览(28)
  • 【软件测试】python+selenium自动化测试

    一、什么是自动化测试 自动化测试指软件测试的自动化,在预设状态下运行应用程序或者系统,预设条件包括正常和异常,最 后评估运行结果。将人为驱动的测试行为转化为机器执行的过程。 单元测试 java的单元测试框架是Junit,在这里不再赘述。 接口自动化 接口测试就是

    2023年04月09日
    浏览(88)
  • python+selenium自动化软件测试 :多线程

    运行多个线程同时运行几个不同的程序类似,但具有以下优点: 进程内共享多线程与主线程相同的数据空间,如果他们是独立的进程,可以共享信息或互相沟通更容易. 线程有时称为轻量级进程,他们并不需要多大的内存开销,他们关心的不是过程便宜. 一个线程都有一个开始

    2024年02月16日
    浏览(55)
  • 软件测试|如何使用Selenium处理隐藏元素

    简介 我们在使用selenium进行web自动化测试时,有时候会遇到元素被隐藏,从而无法对元素进行操作,导致我们的用例报错的情况。当我们遇到元素被隐藏的情况时,需要先对隐藏的元素进行处理,才能继续进行我们的操作,本文就为大家介绍一下如何使用selenium处理隐藏的元

    2024年01月19日
    浏览(48)
  • 软件测试/测试开发/全日制|Python selenium CSS定位方法详解

    简介 CSS选择器是一种用于选择HTML元素的模式。它允许我们根据元素的标签名、类名、ID、属性等属性进行选择。CSS选择器的语法简单而灵活,是前端开发中常用的定位元素的方式。 selenium中的css定位,实际是通过css选择器来定位到具体元素,css选择器来自于css语法。CSS定位有

    2024年01月17日
    浏览(50)
  • 软件测试|如何使用selenium操作窗口滚动条

    简介 我们在进行自动化测试工作的时候,如果页面内容过多,一次性加载耗时太长的话,会使用分段加载来加载页面内容,比如开始只加载页面顶端的内容,而如果要加载更多的数据,就需要我们向下滑动,让页面加载后续的内容;尤其是网页特别长的时候,我们往往需要滑

    2024年02月03日
    浏览(47)
  • Python的web自动化学习(一)Selenium库的工作原理

    Python的web自动化学习(一)Selenium库的工作原理 首发2023-07-31 11:01·云中随心而记 后续会根据持续学习来更新,大家一起学习 引言: Selenium是一个流行的自动化测试工具,用于模拟和控制浏览器行为,常用于Web应用程序的功能测试和验收测试。Selenium支持多种编程语言,包括

    2024年02月08日
    浏览(40)
  • 软件测试|使用selenium处理单选框和多选框

    简介 我们在web自动化测试工作中,经常会遇到对单选框(Radio Buttons)或者多选框(Checkboxes)进行操作的场景,单选框和多选框主要是用于我们做出选择或提交数据。本文将主要介绍selenium对于单选框和多选框的操作。 处理单选框 单选框允许用户从多个选项中选择一个选项。

    2024年01月17日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包