总结: 感谢: “煜妃”<Selenuim+Python之元素定位总结及实例说明> “Huilaojia123”<selenium WebDriver定位元素学习总结> “上海-悠悠”<Selenium2+python自动化9-CSS定位语法> 的文章…
感谢: 煜妃的<Python+Selenium定位不到元素常见原因及解决办法(报:NoSuchElementException)> ClassName定位报错问题:<[Python]Selenium元素定位错误之解决办法>…
#!/usr/bin/python# -*- coding: utf-8 -*-__author__ = 'zuoanvip' #在实际测试过程中,一个页面可能有多个属性基本相同的元素,如果要定位到其中的一个,这时候需要用到层级定位.先定位到父元素,然后再通过父元素定位子孙元素 #导入包from selenium import webdriverfrom selenium.webdriver.common.keys import Keysfrom selenium.webdriver.commo…
参考内容:官方API文档,下载链接:http://download.csdn.net/detail/kwgkwg001/4004500 虫师:<selenium2自动化测试实战-基于python语言> 一.WebDriver原理 1.关于WebDriver 设计模式:按照Server-Client的经典设计模式设计: Server端:即Remote Server(远程服务器),可以是任意的浏览器,当脚本启动浏览器时,该浏览器就是Remote Server,它的职责是等待Client发送请求并做…
Trying to find a good way to set a maximum time limit for command execution latency in Selenium Python WebDriver. Ideally, something like: ff = webdriver.Firefox() ff.implicitly_wait(10) # seconds ff.get("http://somedomain/url_that_delays_loading&quo…
from selenium import webdriver from selenium.webdriver.common.by import By import os,time driver = webdriver.Chrome() file_html = "file:///" + os.path.abspath("C:/Users/XXXXXX/Desktop/PY_file/html/checkbox/index.html") driver.get(file_…
在实际的项目测试中,经常会有这样的需求:页面上有很多个属性基本相同的元素 ,现在需要具体定位到其中的一个.由于属性基本相当,所以在定位的时候会有些麻烦,这时候就需要用到层级定位.先定位父元素,然后再通过父元素定位子孙元素.level_locate.html<html><head><meta http-equiv="content-type" content="text/html;charset=utf-8" /><title…
1.多表单切换 在Web应用中经常会遇到frame/iframe表单嵌套页面的应用,WebDriver只能在一个页面上对元素识别与定位,对于frame/iframe表单内嵌页面上的元素无法直接定位.这时就需要通过switch_to.frame()方法将当前定位的主体切换为frame/iframe表单的内嵌页面中 126邮箱登录框的结构大概是这样子的,想要操作登录框必须要先切换到iframe表单. switch_to.frame() 默认可以直接取表单的id 或name属性.如果iframe没有可…
Set<String> windows = driver.getWindowHandles();        int count = 0;        for(String handle:windows){            if(count == windows.size() - 1){                driver.switchTo().window(handle);            }else{                count++;         …
前言 使用selenium 做web自动化的时候,经常会遇到这样一种需求,是否可以在已经打开的浏览器基础上继续运行自动化脚本? 这样前面的验证码登录可以手工点过去,后面页面使用脚本继续执行,这样可以解决很大的一个痛点. 命令行启动浏览器 首先右键Chrome浏览器桌面图标,找到chrome.exe的安装路径 复制地址C:\Program Files\Google\Chrome\Application 添加到环境变量Path下 打开cmd输入命令启动chrome浏览器 --remote-debug…
更多关于python selenium的文章,请关注我的专栏:Python Selenium自动化测试详解 总有人看不明白,以防万一,先在开头大写加粗说明一下: frameset不用切,frame需层层切! 很多人在用selenium定位页面元素的时候会遇到定位不到的问题,明明元素就在那儿,用firebug也可以看到,就是定位不到,这种情况很有可能是frame在搞鬼(原因之一,改天专门说说定位不到元素,可能的一些原因及处理办法). frame标签有frameset.frame.iframe三种,…
保存图片到指定文件夹: from selenium import webdriverfrom pathlib import Pathfrom time import sleepdriver = webdriver.Chrome()driver.get("http://www.baidu.com")driver.find_element_by_id('kw').send_keys('selenium')driver.find_element_by_id('su').click()slee…
先贴一下源码: base.py文件如下: from selenium import webdriver class Page(object): ''' 页面基础类,用于所有页面的继承 ''' rb_url = 'http://XXXXX' def __init__(self,selenium_driver,base_url=rb_url): self.driver = selenium_driver self.base_url = base_url self.timeout = 30 def o…
转载自:http://www.voidcn.com/blog/huilan_same/article/p-6155896.html 很多人在用selenium定位页面元素的时候会遇到定位不到的问题,明明元素就在那儿,用firebug也可以看到,就是定位不到,这种情况很有可能是frame在搞鬼(原因之一,改天专门说说定位不到元素,可能的一些原因及处理办法). frame标签有frameset.frame.iframe三种,frameset跟其他普通标签没有区别,不会影响到正常的定位,而frame与…
参考:http://blog.csdn.net/huilan_same/article/details/52200586 总有人看不明白,以防万一,先在开头大写加粗说明一下: frameset不用切,frame需层层切! 很多人在用selenium定位页面元素的时候会遇到定位不到的问题,明明元素就在那儿,用firebug也可以看到,就是定位不到,这种情况很有可能是frame在搞鬼(原因之一,改天专门说说定位不到元素,可能的一些原因及处理办法). frame标签有frameset.frame.if…
总有人看不明白,以防万一,先在开头大写加粗说明一下: frameset不用切,frame需层层切! 很多人在用selenium定位页面元素的时候会遇到定位不到的问题,明明元素就在那儿,用firebug也可以看到,就是定位不到,这种情况很有可能是frame在搞鬼(原因之一,改天专门说说定位不到元素,可能的一些原因及处理办法). frame标签有frameset.frame.iframe三种,frameset跟其他普通标签没有区别,不会影响到正常的定位,而frame与iframe对selenium定…
frame标签有frameset.frame.iframe三种,frameset跟其他普通标签没有区别,不会影响到正常的定位,而frame与iframe对selenium定位而言是一样的,selenium有一组方法对frame进行操作. 1.怎么切到frame中(switch_to.frame()) selenium提供了switch_to.frame()方法来切换frame switch_to.frame(reference) 不得不提到switch_to_frame(),很多人在这样写的时候…
感谢CSDN:huilan_same大神 网页地址:http://blog.csdn.net/huilan_same/article/details/52200586…
1.通过selenium.webdriver.support.ui的Select进行定位 下拉菜单如下图: 定位代码(选择Male): from selenium.webdriver.support.ui import Select # 通过index进行选择(注意index从0开始) Select(driver.find_element_by_id("gender")).select_by_index(1) # 通过value进行选择 Select(driver.find_eleme…
定位的原则就是:id name class 优先,强烈建议和前端哥哥搞好关系.定位就不是问题:实在不行就xpath和css大部分偶可以定位到. webdriver定位的方法是通过一个By类,By类中有许多的属性,常用的有已下几个: NO1. ID:dom元素首选的定位方式,id是唯一,定位速度快.(和fe处好关系,用id定位杠杠的) 如By.id(“kw”) 就可以定位到百度的搜索框 NO2. Name:表单定位为name首选,因为表单肯定会有一个name的属性. 如上图中的百度搜索框,也可以用…
今日在公司电脑运行自动化测试脚本,出现cannot find Chrome binary报错 百思不得其解,排错后发现应该是电脑以前有配置driver文件路径,driver所在文件路径已变更,现python还是在原路径查找webdriver,解决办法:调用driver时指定driver所在的绝对路径即可解决. driver = webdriver.Chrome("D:\Google\Chrome\Application\chromedriver.exe")…
1.问题发生描述: 从一个页面进行点击等操作,页面跳转到第二个页面,对第二个页面中的元素,采取任何措施定位都报错,问题报错点如下: 2.出现问题的原因: 窗口句柄还停留在上一个页面,对于当前新弹出的页面还没有定位,因此新页面的任何元素都定位不到 3.解决方案: 在新页面操作元素之前,需添加句柄操作,方式如下: 1.使用driver.current_window_handle #获取当前窗口句柄,添加此方法,仍报相同的错误,因此不能采用这种方式进行解决问题 2.使用driver.switch_to…
1.定位元素(id.name.class.link.partial link) (1)find_element_by_id() 用百度定位测试,用firebug查看定位元素 ,输入框的id为“kw”,[百度一下]按钮的id为“su”. from selenium import webdriver #导入selenium的webdriver包 driver = webdriver.Firefox() driver.get("https://www.baidu.com") driver.f…
(—)滚动条操作 python中selenium操作下拉滚动条方法汇总 selenium_webdriver(python)控制浏览器滚动条 selenium+Python(select定位) Selenium+Python常见定位方法 selenium_webdriver(python)元素定位详解 Selenium+Python浏览器滚动条操作 elenium+python配置chrome浏览器的选项 #(1)使用JS操作浏览器(右侧竖向)滚动条 time.sleep(3)#最好等个几秒 #…
豆瓣原创电子书每周推出数十本限时免费数目,一周免费期过后恢复原价.想着豆瓣原创书中有不少值得一看,便写了个脚本,免去一个个添加的烦恼. 使用了Windows下selenium+Python的组合,有较多的文档可以查阅,主要总结如下: 1.使用chrome浏览器:下载旧版本(52),新版本不兼容,下载chromedriver,放入chrome安装目录,于chrome.exe同目录,并添加到Path环境变量. 2.强大的元素定位:通过浏览器审查元素直接复制的xpath多为绝对定位,容易受网页结构调整…
下载jar包: selenium-server-standalone-2.44.0.jar 运行jar包: java -jar selenium-server-standalone-2.44.0.jar 运行后默认开启4444端口 python请求代码: # -*- coding: utf-8 -*- from selenium import webdriver from selenium.webdriver.common.desired_capabilities import DesiredC…
#coding:gbk from selenium import webdriver from selenium.webdriver.common.keys import Keys from selenium.webdriver.support.ui import WebDriverWait import time driver=webdriver.Chrome() driver.get('http://www.baidu.com') driver.find_element_by_id('lb'…
1.Select元素 1.打开百度-设置-搜索设置界面,如下图所示 2.箭头所指位置,就是 select 选项框,打开页面元素定位,下方红色框框区域,可以看到 select 标签属性: <select id="nr" name="NR">3.选项有三个<option selected="" value="10">每页显示 10 条</option><option value="…
1.定位一组元素webdriver 可以很方便的使用 findElement 方法来定位某个特定的对象,不过有时候我们却需要定位一组对象,这时候就需要使用 findElements 方法.定位一组对象一般用于以下场景: 批量操作对象,比如将页面上所有的 checkbox 都勾上 先获取一组对象,再在这组对象中过滤出需要具体定位的一些对象.比如定位出页面上所有的 checkbox,然后选择最后一个 checkbox.html <html> <head> <meta http-e…
1.第一个脚本 # coding = utf-8 from selenium import webdriver browser = webdriver.Firefox() browser.get("http://www.baidu.com") browser.find_element_by_id("kw" ).send_keys( "selenium") browser.find_element_by_id("su").cli…