webdriver

WebDriver 中使用 Javascript

我与影子孤独终老i 提交于 2020-03-13 11:10:07
Use Javascript in WebDriver package com.example.tests; import java.io.File; import java.util.regex.Pattern; import java.util.concurrent.TimeUnit; import org.junit.*; import static org.junit.Assert.*; import static org.hamcrest.CoreMatchers.*; import org.openqa.selenium.*; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.ie.InternetExplorerDriver; import org.openqa.selenium.remote.DesiredCapabilities; import org.openqa.selenium.support.ui.Select; public class BenbriaSele01 { private WebDriver driver; private String baseUrl; private StringBuffer verificationErrors =

selenium常用操作之窗口切换

 ̄綄美尐妖づ 提交于 2020-03-12 22:34:11
我们在做UI自动化时,不得不会遇到一些窗口跳转与弹框,在这种的时候如果不进行切换的话,继续执行脚本必然会报错,所以我们就需要用到切换窗口的方法。 selenium中主要是三种窗口Windows窗口、iframe窗口、alert窗口,前面已经介绍过iframe和alert弹窗的切换,本节只介绍切换windows窗口。 这类窗口也就是我们常说的句柄,句柄的切换是有必要的,我们自己手动在网页上从操作的话,产生新的句柄时浏览器会自动的帮我们跳转到最新的句柄处,但是我们在做UI自动化的时候,代码并不会帮我们自动的切换到最新的句柄,需要我们使用代码去进行切换   步骤: 1.获取当前所有的窗口 windows=driver.window_handles 2.切换到指定的窗口 driver.switch_to.window(windows[-1]) 3.切回原来的窗口 driver.switch_to.window(windows[0])    4.获取当前窗口的句柄   driver.current_window_handle     示例代码 from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support import expected

selenium常用操作之iframe操作

我只是一个虾纸丫 提交于 2020-03-12 19:12:34
iframe:一个网页里面嵌套了另一个框架/页面,即在一个HTML页面中还内嵌了另外一个HTML页面,只不过这个内嵌的HTML是放在</frame></iframe>标签对中。 在python3.8中对应的selenium提供了两种方法来获取iframe中的内容: 方式一:driver.switvh_to.frame(frame_reference) 语法: driver.switch_to.frame(iframe的name属性或webelement对象或下标) 示例: driver.switch_to.frame(“login_frame_qq”)#切换到name为login_frame_qq的iframe中driver.switvh_to.frame(0)#切换到第一个iframe中driver.switch_to.frame((By.xpath,"//div[@class="ptlogin_wrap"])) 方式二:frame_to_be_available_and_switch_to_it(frame_reference) 在前面的 selenium常用操作之等待操作 中我们有介绍过,expected_conditons模块中提供的方法。 此方法会判断iframe是否可用,并且会自动切换到iframe中。 frame_reference的值与方式一保持一致。 示例:

org.openqa.selenium.NoSuchWindowException: Unable to get browser while trying to open Internet Explorer 11 through Selenium and IEDriverServer

耗尽温柔 提交于 2020-03-11 14:53:08
问题 I'm unable to launch Internet Explorer browser with the selenium webdriver. Facing the below error, can anyone please help Error occured: Started InternetExplorerDriver server (32-bit) 3.14.0.0 Listening on port 45640 Only local connections are allowed Aug 06, 2019 3:32:27 PM org.openqa.selenium.remote.ProtocolHandshake createSession INFO: Detected dialect: W3C Exception in thread "main" org.openqa.selenium.NoSuchWindowException: Unable to get browser Build info: version: '3.141.59', revision

2-selenium对浏览器的操作--基于上海悠悠

时光怂恿深爱的人放手 提交于 2020-03-11 10:06:14
from selenium import webdriver import time ''' 本篇主要讲如何用Python调用webdriver框架的API,对浏览器做一些常规的操作,如打开、前进、后退、刷新、设置窗口大小、截屏、退出等操作。 ''' driver = webdriver.Chrome() url = 'http://www.baidu.com' url1 = 'http://www.google.com' driver.get(url) time.sleep(3) driver.get(url1) time.sleep(5) driver.back() # 返回上一步, time.sleep(3) driver.forward() # 返回下一步 time.sleep(1) driver.set_window_size(400, 900) # 设置浏览器大小 time.sleep(1) driver.maximize_window() # 最大化浏览器 time.sleep(1) driver.refresh() # 刷新浏览器 time.sleep(1) driver.get_screenshot_as_file('D:\谷歌下载\screenshot1.jpg') # 屏幕截图保存为jpg time.sleep(1) driver.close() #

python selenium-4自动化测试模型

独自空忆成欢 提交于 2020-03-11 06:46:50
1.线性测试 特点:每一个脚本都是完整且独立的,可以单独执行。 缺点:用例的开发与维护成本很高 2.模块化驱动测试 特点:把重复的操作独立成公共模块,提高测试用例的可维护性 示例:将搜索封装到func中,其他文件直接导入使用即可 func.py class Func(): def search(self,driver): driver.find_element_by_xpath("//input[@id='kw' and @class='s_ipt']").send_keys("hello") driver.find_element_by_xpath("//input[@value='百度一下' and @id='su']").click() result_text = driver.find_element_by_xpath("//span[@class='nums_text']").text assert "百度为您找到相关结果约" in result_text action.py import sys from selenium import webdriver; from time import sleep from testcase import func path = sys.path[0].replace("testcase", "") + "driver

第6章 Selenium2-Java 自动化测试模型

随声附和 提交于 2020-03-11 06:06:55
6.1 自动化测试模型介绍 6.1.1 线性测试 :其实就是单纯地来模拟用户完整的操作场景。 优势就是每一个脚本都是完整且独立的;      缺陷测试用例的开发与维护成本很高。 6.1.2 模块化驱动测试 :编程语言中模块化的思想,把重复的操作独立成公共模块,当用例执行过程中需要用到这一模块操作时则被调用,这样就最大程度上消除了重复,从而提高测试用例的可维护性。 6.1.3 数据驱动测试 :数据的改变从而驱动自动化测试的执行,最终引起测试结果的改变.(我们读取的是定义的数组、字典,或者是外部文件(excel、csv、txt、xml等)都可以看作是数据驱动。) 6.1.4 关键字驱动测试: 6.2 模块化实例 线性测试实例: package com.cy; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; public class TestModel { public static void main(String[] args) throws InterruptedException { System.out.println("博客园登录 操作 退出"); WebDriver driver

Appium的详细介绍

大憨熊 提交于 2020-03-10 09:56:59
1、Appium 是什么? Appium是一个开源的,适用于原生或混合移动应用( hybrid mobile apps )的自动化测试工具,Appium应用WebDriver: JSON wire protocol驱动安卓和iOS移动应用。 2、Appium的特点: 支持多平台(Android、iOS等) 支持多语言(python、java、ruby、js、c#等) Appium是跨平台的,可以用在OSX,Windows以及Linux桌面系统上运行。 Appium选择了Client/Server的设计模式。只要client能够发送http请求给server,那么的话client用什么语言来实现都是可以的,这就是如何做到支持多语言的原因; Appium扩展了WebDriver的协议,没有自己重新去实现一套。这样的好处是以前的WebDriver API能够直接被继承过来,以前的Selenium(WebDriver)各种语言的binding都可以拿来就用,省去了为每种语言开发一个client的工作量。 3、Appium的哲学: 不需要重新编译或者修改应用 不被一种语言或者框架约束 不重复造轮子 开源免费 4、Appium原理: Appium是c/s架构的 ; Appium是基于webdriver协议添加了对移动设备自动化api扩展而成的, webdriver是基于http协议的

自动化测试面试题及答案大全(2)

人盡茶涼 提交于 2020-03-09 12:20:47
自动化测试面试题及答案大全(2) 原创测试喵 最后发布于2019-04-18 09:40:05 阅读数 3425 收藏 展开 问题1:Selenium是什么,流行的版本有哪些? 是一个开源的web自动化测试的框架,支持多种编程语言,支持跨浏览器平台进行测试。 Selenium 1.0或Selenium RC Selenium 2.0或Selenium Webdriver Selenium 3.0 问题2:你如何从命令行启动Selenium RC? java -jar selenium-server.jar // 在浏览器中运行一套Selenese脚本 java -jar selenium-server.jar -htmlSuite 问题3:在我的机器端口4444不是免费的。我怎样才能使用另一个端口? //你可以在运行selenium服务器时指定端口为 - Java -jar selenium-server.jar -port 5555 问题4:什么是Selenium Server,它与Selenium Hub有什么不同? Selenium Server是使用单个服务器作为测试节点的一个独立的应用程序。 Selenium hub代理一个或多个Selenium的节点实例。一个hub 和多个node被称为Selenium grid

python+selenium八:Alert弹窗

…衆ロ難τιáo~ 提交于 2020-03-08 16:20:24
此弹窗是浏览器自带的弹窗,不是html中的元素 from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains import time from selenium.webdriver.support.select import Select driver = webdriver.Firefox() url = "https://www.baidu.com" driver.get(url) time.sleep(3) mouse = driver.find_element("link text", "设置") ActionChains(driver).move_to_element(mouse).perform() time.sleep(0.5) driver.find_element("link text", "搜索设置").click() time.sleep(1) # 先定位到下拉框 s = driver.find_element_by_id("nr") Select(s).select_by_visible_text("每页显示20条") s.click() time.sleep(1) # 点击保存按钮,此时会弹出确认提示框 driver.find