selenium学习笔记(2) 测试https网站

问题: selenium启动firefox的时候,会使用一个全新的profile作为启动的profile,即手工在firefox中的设置都无法使用。

解决: 找到手动启动firefox时的profile目录,测试程序中通过FirefoxProfile传递给WebDriver

1. 查看profile目录

命令行方式,进入firefox安装目录(多为: C:\Program Files (x86)\Mozilla Firefox),执行

firefox.ext -P

firefox.exe -ProfileManager

弹出profile管理画面,鼠标移到profile名上,会显示其路径

也可新建profile目录,从此对话框启动该profile的firefox,设置信任网站

2. 测试程序:

 1 @Test
 2 public void test() {
 3     System.setProperty("webdriver.gecko.driver", "E:/selenium/geckodriver.exe");
 4
 5     //指向firefox的profile目录
 6     FirefoxProfile profile = new FirefoxProfile(new File("C:/Users/me/AppData/Roaming/Mozilla/Firefox/Profiles/mmi7kyn4.default"));
 7     profile.setAcceptUntrustedCertificates(true);
 8
 9     //使用指定profile启动
10     WebDriver driver = new FirefoxDriver(profile);
11     driver.get("https://www.abcd.com");
12
13     //输入用户名,密码,并提交
14     WebElement userId = driver.findElement(By.cssSelector("input[name=‘userId‘]"));
15     userId.sendKeys("username");
16     WebElement password = driver.findElement(By.cssSelector("input[name=‘password‘]"));
17     password.sendKeys("pasword");
18
19     WebElement submit = driver.findElement(By.cssSelector("button"));
20     submit.click();
21
22     //稍微等待应答
23     try {
24         Thread.sleep(3000);
25     } catch (InterruptedException e) {
26         e.printStackTrace();
27     }
28
29     Assert.assertEquals("XXX", driver.getTitle());
30     driver.quit();
31 }

关于延时等待的几个方法:

1) Thread.sleep() , 最笨的方法,但有时也很实用
2) 隐示等待,指当要查找元素没有马上出现时,告诉WebDriver查询Dom一定时间。默认值是0,但是设置之后,这个时间将在WebDriver对象实例整个生命周期都起作用。
WebDriver dr = new FirefoxDriver();
dr.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
3) 使用javascript
WebElement element = driver.findElement(By.xpath(test));
((JavascriptExecutor)driver).executeScript("arguments[0].style.border="5px solid yellow"",element);
4) 显示等待,推荐使用。
WebDriverWait wait = new WebDriverWait(dr, 10);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("kw")));
显式等待可以自定义等待的条件,用于更加复杂的页面等待条件
(1)元素可用和可被单击:elementToBeClickable(By locator)
(2)元素处于被选中状态:elementToBeSelected(WebElement element)
(3)元素存在:presenceOfElementLocated(By locator)
(4)元素中包含特定的文本:textToBePresentInElement(By locator)
(5)页面元素值:textToBePresentInElementValue(By locator, java.lang.String text)
(6)标题 (title):titleContains(java.lang.String title)

参考地址:

http://www.cnblogs.com/lelelong/p/5523444.html

http://blog.sina.com.cn/s/blog_71bc9d680102wr4o.html

时间: 2024-10-05 17:49:04

selenium学习笔记(2) 测试https网站的相关文章

【selenium学习笔记】webdriver进行页面元素定位

[selenium学习笔记]webdriver进行页面元素定位 进行Web页面自动化测试,对页面上的元素进行定位和操作是核心.而操作又是以定位为前提的,因此,对页面元素的定位是进行自动化测试的基础. 页面上的元素就像人一样,有各种属性,比如元素名字,元素id,元素属性(class属性,name属性)等等.webdriver就是利用元素的这些属性来进行定位的. 可以用于定位的常用的元素属性: id name class name tag name link text partial link te

Sharepoint2013搜索学习笔记之设置sharepoint网站内容源(五)

第一步,进入管理中心,点击管理应用程序,点击search service 应用程序进入到搜索管理配置页面,点击内容源 第二步,点击新建内容源,给内容源命名,在爬网内容类型中选sharepoint网站,输入sharepoint网址地址,注意下图 sps3的意思是对这个sharepoint网址进行人员搜索,如果需要对人员进行搜索,需要提前进行一些配置,参考如下链接: 在sharepoint中部署人员搜索 第三步,爬网计划点启用增量爬网,创建增量爬网计划,注意,完全爬网会对所有内容源进行爬网,增量爬网

selenium学习笔记

Selenium-webdriver(Python)学习笔记 一.相关原理和知识 Selenium是一个关于Web的自动化测试工具,它具有免费,轻巧,支持多语言,多平台,支持分布式测试用例的执行等一系列的优点. Selenium家族大致上有四名成员,即Selenium RC,SeleniumIDE,Selenium Grid,Selenium Webdriver.笔者主要学习的Selenium Webdriver.Selenium Remote Control是一个代理服务器,它可以把各种编程语

Selenium 学习笔记---Selenium basic all in one

Selenium 是这些年非常流行的Web UI 自动化测试工具, 很多同学学习并使用过Selenium.但是一些问题仔细想来是不是让你觉得有些困惑,比如说Selenium 到底是什么东西,为什么能支持多语言编程,到底是怎么驱动浏览器工作的……不要着急,在这篇文章中我们会一一探讨这些问题 名词解释 Selenium 是什么,包含哪些组成部分 (蓝色字体为selenium 学习过程中经常会碰到的名词): 一般来说如果没有明确指明 Selenium 2.0 或 Web Driver而单说Seleni

【selenium学习笔记一】python + selenium定位页面元素的办法。

1.什么是Selenium,为什么web测试,大家都用它? Selenium设计初衷就是为web项目的验收测试再开发.内核使用的是javaScript语言编写,几乎支持所以能运行javaScript的浏览器,支持windows\linux\macos等各种平台. Selenium 脚本是用多种受支持的编程语言中的一种编写的 —— 目前可用的有 Java.Ruby 和 Python 驱动程序.这些脚本在浏览器之外的一个单独的进程中运行.驱动程序的任务是执行测试脚本,并通过与运行在浏览器中的 bro

selenium学习笔记——定位元素

这里介绍的自动化脚本是java编写的,python编写的以后会更新(看学会python的时间O(∩_∩)O~) ?(^?^*) 先介绍一下自动化测试吧~其实自动化测试是个广泛的概念,一般分为三种:自动化单元测试.自动化接口测试和UI自动化测试.自动化单元测试在国外占比70%,国内占比10%:自动化接口测试国外占比20%,国内占比20%,UI自动化测试国内占比70%,国外占比10%.这里说的占比也只是大概数据.也就是说国内现在自动化,大部分还只是UI自动化,接口自动化也只是小部分.有些公司,UI自

selenium学习笔记(1) 搭建环境

1. 用Eclipse创建maven工程,在pom.xml中添加依赖 1 <!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java --> 2 <dependency> 3 <groupId>org.seleniumhq.selenium</groupId> 4 <artifactId>selenium-java</artifactId>

selenium学习:数据驱动测试实例之参数化51cto登录

封装模块文件public_1.py #coding=utf-8 from selenium import webdriver from time import sleep class Login():              #登陆     def user_login(self,driver,username,password):         driver.find_element_by_id("loginform-username").clear()         driv

Selenium学习笔记之014:键盘的用法

主要学习知识点: 键盘按键用法 键盘组合键用法 send_keys() 输入中文运行报错问题 一.键盘按键键用法: #coding=utf-8 from selenium import webdriver from selenium.webdriver.common.keys import Keys #需要引入keys包 import os,time driver = webdriver.Firefox() driver.get("http://passport.kuaibo.com/login