selenium交互代码

一:selenium交互

用selenium打开网页后,也可以做一系列真人的操作,也就是利用selenium和浏览器进行交互,可利用以下几个函数进行操作:

  1. input.send_keys() 传递输入内容给某输入框
  2. button.click() 点击某按钮
  3. browser.execute_script()执行某脚本例如滑动页面
  4. browser.back()回到上一页面
  5. browser.forward()前往下一页面
  6. browser.quit()退出

 下面的示例代码可以实现自动打开百度搜索,输入梅西,滑动页面到最底部,点击下一页,回退到上一页面,前进到下一页面,关闭浏览器的一系列操作:

from selenium import webdriver
browser = webdriver.Chrome()
url = 'https://www.baidu.com/'
browser.get(url)
import time
time.sleep(5)
#获取文本框的对象
input= browser.find_element('id','kw')
#在文本框输入周杰伦
input.send_keys('梅西')
time.sleep(5)
#获取百度一下按钮
button = browser.find_element('id','su')
button.click()
time.sleep(5)
#滑到底部
js_buttom ='document.documentElement.scrollTop=100000'
browser.execute_script(js_buttom)
time.sleep(5)
#获取下一页按钮
next = browser.find_element('xpath','//a[@class="n"]')
next.click()
time.sleep(5)
#回退到上一页
browser.back()
time.sleep(5)
#回去
browser.forward()
#退出
browser.quit()

 二、Chrome handless

selenium为有界面式的交互方式运行的速度较慢,在selenium中还有两个可以让你不打开浏览器界面使用浏览器的方式,Phantomjs和headless。Phantomjs已经被弃用停止维护,所以这里只介绍headless。其配置方式很固定,一般将其封装为一个函数。虽然没有UI界面,但是可以通过browser.save_screenshot()来获取浏览器屏幕截图。下面的代码可以直接使用,只需要将path改为你自己电脑的浏览器安装位置就OK了。

第一处代码未进行封装第二处代码将函数进行了封装以后可以直接进行调用,其运行结果都是获取一张百度首页的图片。

代码1

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = Options()
options.add_argument('headless')
options.add_argument('--disable-gpu')
path=r'C:\Program Files\Google\Chrome\Application\chrome.exe'
options.binary_location=path
browser = webdriver.Chrome(options=options)
url = 'https://www.baidu.com/'
browser.get(url)
browser.save_screenshot('baidu.png')

代码2

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
def share_browser():options = Options()options.add_argument('headless')options.add_argument('--disable-gpu')path=r'C:\Program Files\Google\Chrome\Application\chrome.exe'options.binary_location=pathbrowser = webdriver.Chrome(options=options)return browser
browser =share_browser()
url = 'https://www.baidu.com/'
browser.get(url)
browser.save_screenshot('baidu.png')

三、总结 

Selenium是一款强大的Web自动化测试工具,可以模拟用户在浏览器上的操作以及与页面元素的交互。在本文中,我们介绍了如何进行页面数据及元素的交互,其中代码示例演示了如何使用Selenium搜索并点击百度的下一页,读者可以根据自己的需求进行修改。对于需要进行Web自动化测试的开发者来说,Selenium提供了一种方便的测试方式。通过使用Selenium,可以快速地检验页面的功能性以及稳定性,提高测试效率,保证网站的质量。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/11963.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器学习深度学习——模型选择、欠拟合和过拟合

👨‍🎓作者简介:一位即将上大四,正专攻机器学习的保研er 🌌上期文章:机器学习&&深度学习——多层感知机的简洁实现 📚订阅专栏:机器学习&&深度学习 希望文章对你们有…

【GitOps系列】使用 ArgoCD 快速打造GitOps工作流

文章目录 ArgoCD简介ArgoCD安装访问ArgoCDGitOps 工作流总览创建 ArgoCD 应用检查 ArgoCD 同步状态访问应用 连接 GitOps 工作流体验 GitOps 工作流生产建议1)修改默认密码2)配置 Ingress 和 TLS3)使用 Webhook 触发 ArgoCD4)将源…

Linux时间体系与LinuxPTP

Linux时间体系 Linux 需要提供“知道当前时间、计算时间长度、定时提醒”这三种功能。 其中知道当前时间和计算时间长度在某种程度上可以互相转换。即以UNIX Epoch计时开始可以知道当前时间。 一般硬件可以提供下列的硬件时钟: RTC 【真实时钟】 对于PC而言&…

Android usb host模式通信示例

当使用Android设备作为USB主机时,可以使用Android提供的USB API来进行USB通信。下面是一个简单的Android USB通信的示例。在这个示例中,我们将发送一条消息到连接的USB设备并从USB设备接收响应。 首先,在AndroidManifest.xml文件中添加以下权…

DoIP学习笔记系列:(二)VN5620 DoIP测试配置实践笔记

文章目录 1. 添加.cdd2. CAPL中调用接口发送DoIP请求3. “Ethernet Packet Builder”的妙用4. CANoe也可以做交互界面在进行测试前,先检查车载以太网硬件连线是否正确,需要注意连接两端的Master、Slave,100M、1000M等基本情况,在配置VN5620的时候就可以灵活处理了。成功安装…

数学建模-MATLAB三维作图

导出图片用无压缩tif会更清晰 帮助文档:doc 函数名 matlab代码导出为PDF 新建实时脚本或右键文件转换为实时脚本实时编辑器-全部运行-内嵌显示保存为PDF

【TypeScript】接口类型 Interfaces 的使用理解

导语: 什么是 类型接口? 在面向对象语言中,接口(Interfaces)是一个很重要的概念,它是对行为的抽象,而具体如何行动需要由类(classes)去实现(implement&#x…

【微信小程序】使用 WebSocket 进行订阅操作、连接监听、接收到服务器的消息事件

在微信小程序中使用 WebSocket 进行订阅操作,可以通过 wx.connectSocket 方法创建 WebSocket 连接,并通过相关事件处理函数进行订阅和数据处理。 以下是一个示例代码,演示了在微信小程序中使用 WebSocket 进行订阅: 创建 WebSoc…

JVM-类加载

1.了解冯诺依曼计算机结构 1.1计算机处理数据过程 (1)提取阶段:由输入设备把原始数据或信息输入给计算机存储器存起来 (2)解码阶段:根据CPU的指令集架构(ISA)定义将数值解译为指令 (3)执行阶段:再由控制器把需要处理或计算的数据调入运算器 (4)最终阶段:由输出设备把最后运…

区间预测 | MATLAB实现基于QRF随机森林分位数回归时间序列区间预测模型

区间预测 | MATLAB实现基于QRF随机森林分位数回归时间序列区间预测模型 目录 区间预测 | MATLAB实现基于QRF随机森林分位数回归时间序列区间预测模型效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现基于QRF随机森林分位数回归时间序列区间预测模型&#xff1…

Dooring-Saas低代码技术详解

hello, 大家好, 我是徐小夕, 今天和大家分享一下基于 H5-Dooring零代码 开发的全新零代码搭建平台 Dooring-Saas 的技术架构和设计实现思路. 背景介绍 3年前我上线了第一版自研零代码引擎 H5-Dooring, 至今已迭代了 300 多个版本, 主要目的是快速且批量化的生产业务/营销过程中…

empty module导致的lvs问题

write_verilog时-exclude empty_modules即可 这里也分享一下ICC2 write lvs netlist的命令 write_verilog -exclude {scalar_wire_declarations leaf_module_declarations empty_modules well_tap_cells filler_cells supply_statements} -hierarchy all -force_no_referenc…

django的ORM模板的fake更新

django存量数据表的migraions记录丢失,若要更新表结构,则需用到fake,否则报错: 解决步骤如下: 1)同步存量表结构,生成伪表 --fake sudo python3 manage.py makemigrations appname sudo pyt…

windows下面的python配置

安装包选择exe后缀的 链接:https://pan.baidu.com/s/1sTzQdHMqI4KZwyJHl79Q3w 提取码:1111 PIP安装脚本 python版本pip安装脚本下载地址n3.6https://bootstrap.pypa.io/pip/3.6/get-pip.py3.7及以上https://bootstrap.pypa.io/get-pip.py 控制面板新…

在react项目中如何引入国际化

原文合集地址如下,有需要的朋友可以关注 本文地址 合集地址 react-i18next 在 React 项目中引入国际化(Internationalization,简称 i18n)可以使用第三方库来实现。其中,最常用且流行的国际化库是 react-i18next&am…

手风琴案例(jQuery)

案例效果 代码实现 jQuery代码(两种方法) 方法一:hover版 $(function () {$(".king li").hover(function() {$(this).addClass("current").siblings().removeClass("current");}, function() {$(".king…

单机部署NGINX

​ 1、找到合适的nginx资源包,可以去官网下载 这里用的是 nginx-1.24.0.tar.gz 2、上传下载下来的nginx软件包,并解压 tar zxvf nginx-1.24.0.tar.gz cd nginx-1.24.0/ 3、安装nginx 编译 ./configure --prefix/usr/local/nginx --with-http_ssl…

哈希表的简单模拟实现

文章目录 底层结构哈希冲突闭散列定义哈希节点定义哈希表**哈希表什么情况下进行扩容?如何扩容?**Insert()函数Find()函数二次探测HashFunc()仿函数Erase()函数全部的代码 开散列定义哈希节点定义哈希表Insert()函数Find()函数Erase()函数总代码 初识哈希…

UG\NX二次开发 获取2D制图视图中可见的对象,并获取类型

文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan 简介: 使用UF_VIEW_ask_visible_objects获取2D制图视图中可见的对象,并获取类型。 下面是将一个六面体以不同的视图投影,获取视图对象和类型的效果。 效果: 1个部件事例,1个体,4条边 1个部件事…

springboot创建并配置环境(一) - 创建环境

文章目录 一、介绍二、启动环境Environment的分析三、进入源码四、创建环境1. 如何确定应用类型2. 测试 一、介绍 在springboot的启动流程中,启动环境Environment是可以说是除了应用上下文ApplicationContext之外最重要的一个组件了,而且启动环境为应用…