Python+selenium(操作隐藏元素)】的更多相关文章

定位隐藏要素的原理:页面主要通过“display:none”来控制元素不可见.所以我们需要通过javaScript修改display的值得值为display="block,来实现元素定位的. HTML代码: <header id="header"> <a href="#" class="logo"><strong id="Title" style="display: none&…
前言 面试题:selenium 中隐藏元素如何定位?这个是很多面试官喜欢问的一个题,如果单纯的定位的话,隐藏元素和普通不隐藏元素定位没啥区别,用正常定位方法就行了 但是吧~~~很多面试官自己都搞不清楚啥叫定位,啥叫操作元素(如click,clear,send_keys) 隐藏元素 如下图有个输入框和一个登录的按钮,本来是显示的…
测试过程中,偶尔会碰到一些页面的隐藏元素,如下,是小编举的一个简单的例子: test.html <html> <head></head> <body> <select style="display:none;"> <option value="volvo">Volvo</option> <option value="saab">Saab</opt…
对于前端隐藏元素,一直是selenium自动化定位元素的隐形杀手,脚本跑到隐藏元素时位置时报各种各样的错误, 隐藏的下拉菜单又没有办法避免,此帖只为交流隐藏元素自动化定位处理方法(3种操作)       处理1:(修改样式) html这种格式的:            处理操作: from selenium import webdriver from selenium.webdriver.support.select import Select import os,time driver = w…
首先页面元素隐藏有五种方法: 1. opacity: 0; opacity 属性的意思是设置一个元素的透明度.它不是为改变元素的边界框(bounding box)而设计的.这意味着将 opacity 设为 0 只能从视觉上隐藏元素.而元素本身依然占据它自己的位置并对网页的布局起作用.它也将响应用户交互.这样的组件用selenium是可以操作的,看 @SitePoint 提供的例子“用 opacity 隐藏元素”,但isdisplay是false的 2. visibility: hidden; 将…
WebDriver 在操作页面元素等待时间时,提供2种等待方式:一个为显式等待,一个为隐式等待,其区别在于: 1)显式等待:明确地告诉 WebDriver 按照特定的条件进行等待,条件未达到就一直等待.这在等待某个元素需要非常长的时间时非常有效 示例: import org.openqa.selenium.support.ui.WebDriverWait; import org.openqa.selenium.support.ui.ExpectedCondition; //等待条件未:直到浏览器…
<li class="navbar-nav-item ">       <a href="#" id="cust">XX管理</a>                         <ul class="navbar-dropdown-menu">                             <li class="dropitem-current&qu…
有时候我们会碰到一些元素不可见,这个时候selenium就无法对这些元素进行操作了.例如,下面的情况: Python 页面主要通过“display:none”来控制整个下拉框不可见.这个时候如果直接操作这个下拉框,就会提示: from selenium import webdriver from selenium.webdriver.support.select import Select import os,time driver = webdriver.Chrome() file_path…
有时候我们会碰到一些元素不可见,这个时候selenium就无法对这些元素进行操作了.例如,下面的情况: Python 页面主要通过“display:none”来控制整个下拉框不可见.这个时候如果直接操作这个下拉框,就会提示: from selenium import webdriver from selenium.webdriver.support.select import Select import os,time driver = webdriver.Chrome() file_path…
在自动化测试中,很多时候都会有等待页面某个元素出现后能进行下一步操作,或者列表中显示加载,直到加载完成后才进行下一步操作,但时间都不确定,如下图所示 幸运的是,在selenium 2后有一个模块expected_conditions,里面有很多函数可以完成这个工作,相关博客可见 http://www.cnblogs.com/nbkhic/p/4885041.html 但在selenium 1中或自己仅仅想写个简单用法该怎么处理那?解决如下: from selenium.common.except…
1.什么是Selenium,为什么web测试,大家都用它? Selenium设计初衷就是为web项目的验收测试再开发.内核使用的是javaScript语言编写,几乎支持所以能运行javaScript的浏览器,支持windows\linux\macos等各种平台. Selenium 脚本是用多种受支持的编程语言中的一种编写的 —— 目前可用的有 Java.Ruby 和 Python 驱动程序.这些脚本在浏览器之外的一个单独的进程中运行.驱动程序的任务是执行测试脚本,并通过与运行在浏览器中的 bro…
注:本文转载http://www.cnblogs.com/mengyu/p/6972968.html 当浏览器在加载页面时,页面上的元素可能并不是同时被加载完成,这给元素的定位增加了困难.如果因为在加载某个元素时延迟而造成ElementNotVisibleException 的情况出现,那么就会降低自动化脚本的稳定性,我们可以设置元素等待时间改善这种问题造成的不稳定性.selenium 主要提供Explicit Waits和Implicit Waits两种模式的等待,但是python time…
1.什么是Selenium,为什么web测试,大家都用它? Selenium设计初衷就是为web项目的验收测试再开发.内核使用的是javaScript语言编写,几乎支持所以能运行javaScript的浏览器,支持windows\linux\macos等各种平台. Selenium 脚本是用多种受支持的编程语言中的一种编写的 —— 目前可用的有 Java.Ruby 和 Python 驱动程序.这些脚本在浏览器之外的一个单独的进程中运行.驱动程序的任务是执行测试脚本,并通过与运行在浏览器中的 bro…
转自:http://blog.sina.com.cn/s/blog_6966650401012a7q.html 一.输入框(text field or textarea) //找到输入框元素: WebElement element = driver.findElement(By.id("passwd-id")); //将输入框清空: element.clear(); //在输入框中输入内容: element.sendKeys(“test”); //获取输入框的文本内容: element…
工具:winspy Python所需安装模块:pywin32 (安装语句:pip install -i https://pypi.douban.com/simple pywin32) 元素位置: 对应代码: from selenium import webdriver from time import sleep import win32gui import win32con # 上传文件 upload = browser.find_element_by_xpath("//button[@cla…
1.class属性有空格  (已验证) 当classname 中存在空格的时候,直接使用find_element_by_class_name时,会显示定位失败,此时,需要将classname中的空格替换成英文的点“.”,如下图: 此时如果使用 find_element_by_class_name("link detail"),则提示无法定位该元素 如果使用英文点替换,则可以正常定位 find_element_by_class_name("link.detail")…
在做测试的时候,空口无凭都是白掐,特别是自动化测试的时候,更需要图片来佐证自己发现的问题 话不多说,直接进入主题,技术就是这么直白 Webdriver自带截图功能,get_screenshot_as_file(),save_screenshot(),使用起来还是蛮方便的 截图一:get_screenshot_as_file() 截图二:save_screenshot() get_screenshot_as_file()方式 该方式很简单,通过driver获取该方法,将截图要保存的路径写入就好,先…
1.截取当前屏幕 @property def getImage(self): ''' 截取图片,并保存在images文件夹 :return: 无 ''' timestrmap = time.strftime('%Y%m%d_%H.%M.%S') imgPath = os.path.join(gl.imgPath, '%s.png' % str(timestrmap)) self.driver.save_screenshot(imgPath) print 'screenshot:', timest…
WebDriver提供了操作Cookie的相关方法,可以读取.添加和删除cookie信息. WebDriver操作cookie的方法: get_cookies(): 获得所有cookie信息. get_cookie(name): 返回字典的key为“name”的cookie信息. add_cookie(cookie_dict) : 添加cookie.“cookie_dict”指字典对象,必须有name 和value 值. delete_cookie(name,optionsString):删除c…
1.下载chromedriver.exe 入在chrome 浏览器目录下 from selenium import webdriverimport os chromedriver = "C:\Users\AppData\Local\Google\Chrome\Application\chromedriver.exe" os.environ["webdriver.chrome.driver"] = chromedriver driver =  webdriver.Ch…
第一种 先获取元素通过 属性获取 WebElement webElemt= webElement.findElement(By.xpath("//*[@class='xxxxxx]/a")); //在ie下使用innerText 在火狐下使用textContent String linktext = webElemt.getAttribute("innerText"); 第二种 通过js获取 WebElement element = ...; ((Javascrip…
很多时候,网页上的布局都是表格形式的,如出下面这样的 这种网页类型在自动化中比较头痛,需要很多判断,下面就举个例子,这里以深圳出入境网页为例,http://yysl.sz3e.com/wsyysq/select_sldw_zbs.jsp 比如我们需要点击某个星期六的任意一个可以预约的时段,该怎么写呢. 首先我们要分析,这也是写程序的第一步,将手工操作进行逻辑提取,再形成程序 1.先判断列表中的日期,找到星期六的列 2.再从找到的列中判断可预约的时间点 基本思路就是这样,来看第一点,怎么提取表格式…
首先需要倒入Select模块: from selenium.webdriver.support.select import Select 常用方法: 通过索引定位:select_by_index() 通过value值定位:select_by_value() 通过文本值定位:select_by_visible_text() 其他方法: 取消所有选项:deselect_all() 取消对应index选项:deselect_by_index() 取消对应value选项 :deselect_by_val…
高亮元素的思路是: 1.找到要高亮的元素 2.对该元素执行js,更改style达到高亮效果. 操作隐藏的内容思路: 1.可以用Actions的moveToElement,使鼠标悬停在触发隐藏内容的元素上. 2.也可以用js点击触发隐藏内容的元素 下面是具体的代码: package com.test; import java.sql.Driver; import org.openqa.selenium.By; import org.openqa.selenium.JavascriptExecuto…
前言 首先 selenium 是可以定位到隐藏元素的,但是 selenium 不能跟隐藏元素交互,也就是隐藏元素element不能使用element.click()方法. 隐藏元素element.text 虽然不会报错,但获取到的文本是空值 隐藏元素定位 登录之后,获取个人中心的账号内容,在页面上没显示,f12能看到,很明显这是个隐藏元素style="display: none;" from selenium import webdriver import time # 作者-上海悠悠…
感谢:小琰子 Python+Selenium 脚本中的一些js的用法汇总: 1.滚动条 driver.set_window_size(500,500) js = "window.scrollTo(0,200)" #左:距左边横滚.右:距上边竖滚driver.execute_script(js) 2.获取元素的值 button = driver.find_element_by_css_selector("#su") #定位按钮 input = driver.find_…
以下记录刚接触Python Selenium操作Web UI的学习问题: 1.python selenium三种等待方式: ①强制等待:time.sleep(value):设置等待最简单的方法就是强制等待,其实就是time.sleep()方法,不管它什么情况,让程序暂停运行一定时间,时间过后继续运行:缺点时不智能,设置的时间太短,元素还没有加载出来,那照样会报错:设置的时间太长,则会浪费时间,不要小瞧每次几秒的时间,case多了,代码量大了,很多个几秒就会影响整体的运行速度了:所以尽量少用这个…
前言 面试题:selenium中隐藏元素如何定位?这个是很多面试官喜欢问的一个题,如果单纯的定位的话,隐藏元素和普通不隐藏元素定位没啥区别,用正常定位方法就行了 但是吧~~~很多面试官自己都搞不清楚啥叫定位,啥叫操作元素(如click,clear,send_keys) 隐藏元素 如下图有个输入框和一个登录的按钮,本来是显示的 元素的属性隐藏和显示,主要是 type="hidden"和style="display: none;"属性来控制的,接下来在元素属性里面让它隐…
WebDriver提供了execute_script()方法来执行JavaScript方法,格式如 driver.execute_script(script,*args) 执行js一般有两种场景,一是在页面中直接执行js,二是在某个已经定位的元素上执行js 通过js操作页面元素 <!DOCTYPE html> <html lang="en"> <head> <title>webdriver 调用js操作元素</title> &…