当前位置: 首页 > news >正文

wordpress 手机短信湖南seo网站多少钱

wordpress 手机短信,湖南seo网站多少钱,做网投网站,82端口做网站Selenium是一个web自动化测试的工具,在使用之前先在对应的项目添加工具包噢. 本文章主要简单的介绍了selenium对于自动化测试的使用 目录 添加浏览器驱动 get函数来到对应网站 驱动的定位 元素定位 id定位 class name定位 CSS定位 XPath定位 link text定位 定位一…

Selenium是一个web自动化测试的工具,在使用之前先在对应的项目添加工具包噢.

本文章主要简单的介绍了selenium对于自动化测试的使用 

目录

添加浏览器驱动

get函数来到对应网站

驱动的定位 

元素定位

id定位

class name定位

CSS定位

XPath定位

link text定位

定位一组元素

层级定位

操作测试对象

等待

强制等待

显式等待

隐式等待

鼠标点击与键盘的输入

send_keys()

click()

submit()

text

打印信息

浏览器的操作

浏览器最大化

浏览器的宽与高

浏览器的前进与后退

键盘按键

常用按键方法

键盘组合键用法

鼠标事件

alert,conirm,prompt的处理

上传文件的操作

selenium简单使用流程


添加浏览器驱动

from selenium import webdriver #导包browser = webdriver.Edge() #得到浏览器驱动

get函数来到对应网站

browser.get("https://www.baidu.com/index.htm")

驱动的定位 

通俗的说,页面通过句柄进行定位,句柄是页面的唯一标识

可以通过

driver.window_handles

来获取所有的句柄,也可以通过下面的方法获取最新页面的句柄 

driver.switch_to.window(driver.current_window_handle)  #获取当前页面的句柄,并将驱动重新定位到最新的页面

在获取后,通过switch_to.window方法重新定位浏览器驱动,这样才能进行后续的操作. 

元素定位

首先要进行导包

from selenium.webdriver.common.by import By

定位元素的方法有很多:

    • id定位(通常是唯一)
    • name定位(允许重复,定位到第一个)
    • tag name(标签名,允许重复定位到第一个)
    • class name定位()
    • CSS定位
    • XPath定位
    • link text定位

关键是"定位",当然是要定位到一个唯一的地址,当以上的id,name,class name在页面上不是唯一的时候,定位都会失败.

(可以在浏览器的开发者模式F12中,按下ctrl + f.输入要定位的元素的id或classname进行查看是否唯一)

图中显示有72个元素包含有container

id定位

通过元素的id进行定位

browser.find_element(By.ID, "kw")

name,tag name,class name都是与id定位一样的,但都是在唯一的前提下才能进行使用.

class name定位

class我们可以只截取其一部分进行定位,如果一个元素的class为hello world

那么我们可以只把hello或world放上语句进行定位

CSS定位

在F12下,找到对应的元素.右键

选择slector,得到当前元素的CSS

browser.find_element(By.CSS_SELECTOR, "#kw")

XPath定位

与CSS类似的

browser.find_element(By.XPATH, "//*[@id='kw']")

link text定位

像以上的文字链接,就可以使用这种方式(页面唯一时)

browser.find_element(By.LINK_TEXT,"hao123").click()

定位一组元素

使用find_elements

可以找到多个元素,并以集合的形式存储

saveH3 = driver.find_elements(By.CLASS_NAME, "t") # 获取所有的t 
for a in saveH3: # 遍历t中的a,获取文本并打印 data = a.find_element(By.TAG_NAME,"a").text print(data)

层级定位

在定位复杂一点的元素时,可以先定位到其父级元素,并再次定位进行寻找

driver.find_element(By.CLASS_NAME, "t").find_element(By.TAG_NAME,"a")

操作测试对象

定位完元素之后当然是要对其进行操作啦.

在webdriver中常用的操作对象有:

  • click 点击
  • send_keys 在对象上模拟按钮输入
  • clear 清楚对象输入的文本
  • submit 提交
  • text 获取元素的文本内容

等待

在selenium中,等待分为隐式等待,显示等待与强制等待

强制等待

time包中的sleep-单位为秒(s)

time.sleep(5) #页面强制等待5s

显式等待

对特定的元素进行等待

#显式等待,直到元素被加载出来.条件是10s内,每0.5秒进行尝试点击.如果元素加载出来了就停止等待
#超过10s找不到就抛异常
tmp = WebDriverWait(browser,10,0.5).until(EC.presence_of_element_located((By.LINK_TEXT,'我的世界Minecraft中国版官方网站——你想玩的,这里都有')))
tmp.click()

隐式等待

隐式等待(设置一次,全局生效)

会对所有将要被操作元素进行等待

在下一个被操作的元素没有加载出来之前会进行等待,等待的时长为20,单位为秒

driver.implicitly_wait(20)

鼠标点击与键盘的输入

send_keys()

在输入框中输入文本

click()

对元素进行点击

from selenium.webdriver.common.keys import Keys driver.find_element(By.ID, "kw").send_keys("B站") 
driver.find_element(By.ID, "kw").send_keys(Keys.ENTER)#对输入框的内容进行键盘上的Enter操作

submit()

提交表单,对type为submit类型的元素.触发表单的提交

text

获取元素的文本信息

driver.find_element(By.TAG_NAME,"a").text

打印信息

页面的title,URL...都可以获取出来

但是驱动的title和URL等属性都是当前驱动所在页面的属性,并不是浏览器上最新页面的属性

例如:

        在百度搜索结果页面,点开了一个超链接.新建了页面A

        但此时浏览器驱动还是在百度搜索结果页面上,此时直接去搜索页面A的元素是会报错的

        而通过driver.title获取页面的标题,得到的也只是百度搜索结果页面的标题,并不是A的标题

浏览器的操作

对页面的控制,

浏览器最大化

driver.maximize_window()

将页面调整至最大化

浏览器的宽与高

driver.set_window_size(#{宽},#{高})

浏览器的前进与后退

driver.forward() # 前进 driver.back # 后退

键盘按键

模拟键盘操作,首先要导入keys包

from selenium.webdriver.common.keys import Keys # 键盘按钮包

通过键盘的输入方法send_keys来进行下面的操作

常用按键方法

send_keys(Keys.TAB) # 按下tab 
send_keys(Keys.ENTER) # 按下回车 
send_keys(Keys.SPACE) # 按下空格 
send_keys(Keys.ESCAPR) # 按下回车键

键盘组合键用法

注意组合键后面的英文字母为小写

send_keys(Keys.CONTROL,'a') # 全选 
ctrl + a send_keys(Keys.CONTROL,'c') 
send_keys(Keys.CONTROL,'x') 
send_keys(Keys.CONTROL,'v')

鼠标事件

鼠标事件也要导入包

from selenium.webdriver.common.action_chains import ActionChains

ActionChains类 (执行链)中的方法有

  • context_click(#{element}) # 右键
  • double_click(#{element}) # 双击
  • drage_and_drop(#{element},#{target}) # 拖动元素至目标 target也是元素
  • move_to_element(#{element}) # 指针移动到元素

alert,conirm,prompt的处理

这是关于弹窗的处理,首先来说明一下三个弹窗

  • alert,警告类弹窗.只有确认键
  • confirm,询问类弹窗,询问是否继续某些操作.有确认与取消键
  • prompt,消息类弹窗,含有输入框,可能会要输入内容,有确认与取消键
alter = driver.switch_to.alert # 将驱动定位到当前弹窗:alert/confirm/prompt上 
alter.text # 获取当前弹窗的文本 
alter.accept() # 按下当前弹窗的确认键 
alter.dismiss() # 按下当前弹窗的取消键-如果有的话 
alter.send_keys("要输入的内容") # 在弹窗的输入框中输入内容-如果有的话

上传文件的操作

找到type为file的input标签,使用send_keys方法添加本地文件的路径

selenium简单使用流程

driver = webdriver.Edge()
driver.implicitly_wait(30)
driver.get("https://www.baidu.com/index.htm")
driver.maximize_window()  # 设置页面最大化
driver.find_element(By.ID, "kw").send_keys("蜡笔小新")
driver.find_element(By.ID, "kw").send_keys(Keys.ENTER)
driver.switch_to.window(driver.current_window_handle)saveH3 = driver.find_elements(By.CLASS_NAME, "t")  # 获取所有的t
for a in saveH3:  # 遍历t中的a,获取文本并打印data = a.find_element(By.TAG_NAME, "a").textprint(data)alter = driver.switch_to.alert  # 将驱动定位到当前弹窗:alert/confirm/prompt上
alter.text  # 获取当前弹窗的文本
alter.accept()  # 按下当前弹窗的确认键
alter.dismiss()  # 按下当前弹窗的取消键-如果有的话
alter.send_keys("要输入的内容")  # 在弹窗的输入框中输入内容-如果有的话

http://www.hkea.cn/news/416901/

相关文章:

  • 阿里巴巴logo高清图谷歌seo网站推广
  • 网站如何做内链seo高手是怎样炼成的
  • 设计师个人网站建设怎样注册一个自己的平台
  • 徐州营销网站建设产品线上推广渠道
  • 绍兴市网站建设公司企业官网搭建
  • 关于网页设计的网站免费发布信息网站大全
  • 郑州新闻头条seo基础教程
  • 做网站比较大的公司朔州seo
  • 如何制作私人网站福州专业的seo软件
  • 做网站主流技术南宁在哪里推广网站
  • 老板让我做网站负责人微博营销软件
  • 教我做网站百度打开
  • 网站开发时如何兼容电商运营是做什么的
  • 河北建设银行石家庄分行招聘网站怎么申请自己的网络平台
  • vs2008 做网站搜索引擎的工作原理是什么
  • 东莞常平做网站公司app营销策划方案
  • 爱用建站 小程序重庆网站制作公司
  • 网站建设小企业案例漯河网络推广哪家好
  • wordpress 清空回收站合肥网站优化软件
  • 电站建设招聘网站智推教育seo课程
  • 做静态网站选用什么服务器站长素材网站
  • 网站建设先做前台还是后台百度认证是什么
  • 广州专业做crm系统的供应商seo网站培训班
  • 景安建网站企业网站seo方案案例
  • 山东滕州疫情最新消息今天i长沙官网seo
  • 公司做网站买域名之后做什么百度一下你就知道手机版
  • 北京婚恋网站哪家最好企业推广宣传方式
  • 国发网站建设西安做网站公司
  • 网站推广服务合同简述网络营销的主要方法
  • 信息门户网站是什么成人计算机培训机构哪个最好