首页 > 其他分享 >使用Selenium进行Web自动化操作

使用Selenium进行Web自动化操作

时间:2023-12-17 20:11:06浏览次数:312  
标签:Web input webdriver selenium time Selenium 自动化 import browser

我们可使用Selenium进行Web自动化操作。

一、环境搭建:

1.下载安装Pycharm

2.在Pycharm中新建项目

3.在Pycharm中安装Selenium(FIle->Settings->Project:项目名->Python Interpreter->加号->搜索添加Selenium)

4.下载符合浏览器版本的chromedriver.exe

114之前chromedriver驱动版本:淘宝镜像

115以后chromedriver驱动版本:国内镜像

5.将chromedriver.exe放在项目中

 6.编写初始化代码,运行

import time

from selenium import webdriver
from selenium.webdriver.chrome.service import Service

s = Service("chromedriver.exe")
browser = webdriver.Chrome(service=s)
browser.get("http://www.gushiwen.cn")

time.sleep(10)

 

二、元素定位

使用find_element或find_elements函数

1.通过ID

2.通过CLASS_NAME

3.通过TAG_NAME

4.通过CSS_SELECTOR

5.通过XPATH

6.通过LINK_TEXT

7.通过NAME

使用示例如下:

import time

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By

s = Service("chromedriver.exe")
browser = webdriver.Chrome(service=s)
browser.get("http://www.gushiwen.cn")

input = browser.find_element(By.ID,"txtKey")
input.send_keys("李白")

inputBtn = browser.find_element(By.CSS_SELECTOR,"#search > form > input[type=submit]:nth-child(3)")
inputBtn.click()

time.sleep(10)

 

三、获取元素信息

1.xx.text

2.xx.get_attribute("yy")

3.xx.tag_name

使用示例如下:

btn = browser.find_element(By.LINK_TEXT,"古籍")
print(btn.get_attribute("href"))

 

四、与页面交互

1.xx.click()

2.xx.send_keys(yy)

3.browser.execute_script(js)

4.browser.back()

5.browser.refresh()

6.browser.quit()

使用示例如下:

import time

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By

s = Service("chromedriver.exe")
browser = webdriver.Chrome(service=s)
browser.get("http://www.gushiwen.cn")

time.sleep(8)
browser.refresh()
time.sleep(5)

input = browser.find_element(By.ID,"txtKey")
input.send_keys("李白")

inputBtn = browser.find_element(By.CSS_SELECTOR,"#search > form > input[type=submit]:nth-child(3)")
inputBtn.click()

js = "document.documentElement.scrollTop = '10000'"
browser.execute_script(js)

time.sleep(5)
browser.back()

time.sleep(5)
browser.quit()
time.sleep(5)

 

五、与IPA工具交互

需要在项目目录加上chromedriver.exe,注意填写入参和出参。

代码示例如下:

import time

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By

s = Service("chromedriver.exe")
browser = webdriver.Chrome(service=s)
browser.get("http://www.gushiwen.cn")

input_field = browser.find_element(By.ID,"txtKey")
input_field.send_keys(input_val)

inputBtn = browser.find_element(By.CSS_SELECTOR,"#search > form > input[type=submit]:nth-child(3)")
inputBtn.click()

res = browser.find_element(By.CSS_SELECTOR,"body > div.main3 > div.left > div.sonspic > div.cont > p:nth-child(3)")
output_val = res.text

time.sleep(5)

 

六、无界面操作

代码示例如下:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()
options.add_argument("--headless")
options.add_argument("--disable-gpu") #减少BUG
options.binary_location = r"C:\Program Files\Google\Chrome\Application\chrome.exe"

browser = webdriver.Chrome(options=options)
browser.get("http://www.gushiwen.cn")
browser.save_screenshot("gushiwen.png")

ps:在处理文件路径时,r前缀很有用。它可以确保路径中的反斜杠在字符串中保持不变,而不会被解释为转义字符。这在处理Windows文件路径时尤其有用。

 

标签:Web,input,webdriver,selenium,time,Selenium,自动化,import,browser
From: https://www.cnblogs.com/luoyihao/p/17909536.html

相关文章

  • 使用JS和C#完成websocket双向通讯
    写在前面:微软官方对websocket的直接支持很差,教程也写得不用心。还要用户自己去转字节数组和字符串,太过分了!毕竟主推SignalR。本文是在官方教程的基础上,对其进行了一些简单的讲解,和方法提取、封装,以期降低学习难度。步骤描述:1、随便建了个普通的mvc项目(任意带控制器的.net项......
  • [前端][Vue] 利用webstorage API存储数据
    关于webstorageAPI官方文档https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API省流说明1️⃣两种--localStorage&sessionStorage2️⃣存多久--local一直存到除非用户主动删,session等浏览器关掉就删3️⃣API--一样的,存setItem,读getItem,删一个remove,删全部......
  • 06.app 自动化控制
    启动启动应用方式一:webdriver.remote("url",desirecapability)方式二:launch_app() 将应用启动起来#方式一:self.driver=webdriver.Remote\("http://127.0.0.1:4723/wd/hub",desire_cap)#方式二:self.driver.launch_app()#数据清理清空输入框内容clear()......
  • 赣CTF-WEB-WP
    赣CTF-WEB-WP第一次出题,✌们轻喷~~~水果忍者~出的JS小游戏签到题,看前端中的all.js文件,即可找到flag。Ez_RCe反引号命令执行preg_match("/flag|cat|tac|system|\\$|\\.|\\\\|exec|pass/i")这边过滤了许多关键字我们知道在linux中反引号``也可以执行系统命令,只不过不会回......
  • asp.net基于WEB层面的云LIS系统平台源码
    随着计算机技术在检验管理方面的广泛应用,以及各种先进的检验仪器在检验医学领域的使用,检验科室对信息化管理提出了更高的要求。正是在这样的背景下开发出了实验室信息管理系统(简称LIS)结合当今各检验科管理及实验室规模的不同状况,充分吸收当今IT科技的最新成就,开发出以高度产品化......
  • 使用DNS查询Web服务器IP地址
    浏览器并不具备访问网络的功能,其最终是通过操作系统实现的,委托操作系统访问服务器时提供的并不是浏览器里面输入的域名而是ip地址,因此第一步需要将域名转换为对应的ip地址域名:www.baidu.comip地址是一串数字tcp/ip的网络结构:计算机通过集线器连接在一起构成一个个子网,子网......
  • 04.自动化测试用例结构分析
    desktop生成用例脚本el1:点击 OS ,进入下一个页面调用点击方法el2:点击 MorseCode调用sendkeys方法,输入ceshiren.com返回用例脚本优化添加capability信息初始化webdriver,添加setup和teardown添加隐式等待和noReset属性增强用例稳定性添加断言注意selenium版......
  • Jmeter46 配置元件,读取.properties,.ini, .txt 配置文件,为全局做自动化
     配置元件主要是用与测试前的配置,将配置转换为变量设置到jmetercontext中。而jmeter默认并没有配置元件(.properties)读取器,但是由于jmeter是开源的,我们可以自己定义一个配置元件来读取配置文件。插件下载地址:https://www.testautomationguru.com/jmeter-property-file-reader-......
  • 01.App 自动化测试的价值与体系
    UI自动化价值提高效率融入企业迭代流水线,与CI/CD/DevOps结合回归测试、功能测试加速提高质量:兼容性测试专项/非功能测试自动化探索测试app测试的时代背景按月发布->按周发布->按小时发布多端发布:Android、iOS、微信小程序、h5多环境发布:联调环境、测试环......
  • java接口自动化系列(02):测试数据文件设计
     本系列汇总,请查看这里:https://www.cnblogs.com/uncleyong/p/15867903.html说明本次分享的是测试数据存excel中,后续分享测试数据存yaml中测试用例数据示例解释:标题行每个单词首字母大写,因为代码里面反射会用到解释:字段数据Url:只写路径,不需要写ip、端口RequestType:目......