Selenium实例讲解网站登录及元素定位方法总结

发表于:2018-4-19 09:06

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:桃 子    来源:51Testing软件测试网原创

  本文主要介绍了如何利用Selenium对网站进行登录,Xpath元素定位,及窗口操作的一些常用方法,附上详细代码及解析,同时简单总结元素定位不到的原因有哪些。
  一、图片验证码登录
  这部分主要完成浏览器打开,通过元素定位在浏览器中输入账号、密码信息,最后通过OCR识别技术完成验证码的输入,保证登录成功。
  1.1、启用浏览器并打开测试网站
  代码:
from selenium import webdriver #将webdriver驱动导入selenium框架中
from pip._vendor.requests.cookies import get_cookie_header
#导入cookie(获取cookie时使用)
import time#导入时间包(后续time函数使用)
#将chrome驱动地址赋值给chromdriver
browser=webdriver.Firefox()#打开Firefox浏览器
browser.get("https://login.xxxx.com/en?dest_url=https://xxxx.com/en/contact")
  #打开测试网站(此网站地址需要填写自己测试的网站地址)
  1.2、设置等待时间
  在上面登录过程中网页加载慢,出现了还没等图片完全加载出来就进行图片识别的现象,导致识别失败,如下图
  那么我们应该如何操作去避免提前加载的现象呢?
  如果给它加一个条件满足(图片验证码显示完全)时:再进行图片识别操作是否可行呢,我们来看看。
  Selenium有3种等待时间:
  这里使用WebDriverWait()方法:
  WebDriverWait(driver,timeout,poll_frequency=0.5,ignored_exceptions=None)
  driver:浏览器驱动名称
  timeout:最长超时时间,默认以秒为单位。
  poll_frequency:检测的间隔(步长)时间,默认为0.5S。
  ignored_exceptions:超时后的异常信息,默认情况下抛NoSuchElementException异常
  WebDriverWait()一般由until()或until_not()方法配合使用
  HTML结构:
  代码:
Element=WebDriverWait(browser,100).until(
EC.presence_of_element_located((By.ID,"captcha_img_id"))
)
  代码意思是:ID名称为"captcha_img_id"的元素显示等待100s,如果没有出现,抛出异常,通过上面方法就可以处理等待页面元素加载完全后进行相关功能操作。
  1.3、账号、密码元素定位并输入内容
  首先通过F12打开代码界面,点击元素定位图标,选中要定位的"账号"文本框内容,在代码区域找到定位的元素代码信息,如下图中的name名称"login",密码元素同理
  代码:
browser.find_element_by_name("Login").send_keys("xxxx")
#通过name定位登录文本框,通过send_keys输入账户信息
browser.find_element_by_name("Password").send_keys("xxxx")
#通过name定位密码文本框,通过send_keys输入密码信息
... ...
  查看更多精彩内容,请点击下载:

版权声明:本文出自《51测试天地》第四十九期。51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号