Java-selenium
public class chrometest {
public static void main(String[] args) throws InterruptedException { String chromepath="path"; System.setProperty("webdriver.chrome.driver", chromepath); //初始化一个chrome浏览器实例,实例名称叫driver
WebDriver driver = new ChromeDriver(); //最大化窗口
driver.manage().window().maximize(); //get()打开一个站点
driver.get("https://music.163.com/"); //切换到第二个tab-li[2]
WebElement tagele1 = driver.findElement(By.xpath("//*[@id=\"g_nav2\"]/div/ul/li[2]/a")); tagele1.click();
//切换iframe
WebElement frame = driver.findElement(By.xpath("//*[@id=\"g_iframe\"]")); driver.switchTo().frame(frame); //点击播放按钮
WebElement play_button = driver.findElement(By.xpath("//*[@id=\"toplist\"]/div[2]/div/div[1]/div/div[2]/div/div[3]/a[1]")); play_button.click(); //打印当前url
System.out.println("当前.....打开页面是: "+ driver.getCurrentUrl()); //切换
//----------------------
driver.switchTo().defaultContent();
//---------------------- Thread.sleep(3000); WebElement tagele0 = driver.findElement(By.xpath("//*[@id=\"g_nav2\"]/div/ul/li[1]/a")); tagele0.click(); System.out.println("当前.....打开页面是: "+ driver.getCurrentUrl()); Thread.sleep(3000); Actions action = new Actions(driver);
action.moveToElement(driver.findElement(By.xpath("//*[@class=\"link s-fc3\"]"))).perform();
Thread.sleep(3000);
WebElement ele2 = driver.findElement(By.xpath("//*[em=\"QQ登录\"]"));
ele2.click();
Thread.sleep(3000);
//----------------------
String title = "安全登录";
String s = null; Set<String> handles = driver.getWindowHandles(); for (String t : handles) { System.out.println("switchWindow: "+t);
if (driver.switchTo().window(t).getTitle().contains(title)) {
s = t;
}
}
driver.switchTo().window(s);
System.out.println("target_window_handler:"+s); WebElement qframe = driver.findElement(By.xpath("//*[@id=\"ptlogin_iframe\"]")); driver.switchTo().frame(qframe); //点击意见反馈
WebElement qplay_button = driver.findElement(By.xpath("//*[@id=\"feedback_qlogin\"]")); qplay_button.click(); Thread.sleep(8000);
System.out.println("当前.....打开页面是: "+ driver.getCurrentUrl()); driver.quit();
}
}
Java-selenium的更多相关文章
- java selenium (五) 元素定位大全
页面元素定位是自动化中最重要的事情, selenium Webdriver 提供了很多种元素定位的方法. 测试人员应该熟练掌握各种定位方法. 使用最简单,最稳定的定位方法. 阅读目录 自动化测试步骤 ...
- java+Selenium+TestNg搭建自动化测试架构(1)实现代码和数据的分离
1.主要介绍介绍Java+Selenium+POM的自动化测试框架的搭建,第一个首先实现代码和账号URL等信息的分离.第二点支持跨浏览器,通过读取配置文件的方式实现. 1)将账号URL等信息添加在pr ...
- Electorn(桌面应用)自动化测试之Java+selenium实战例子
基于electorn的桌面应用,网上相关资料较少.所有记录一下.使用java+selenium+testng对该类型应用的自动化测试方法. 代码样例 package com.contract.web. ...
- 【java+selenium】网易云音乐刷累计听歌数
背景应该是在去年的时候,刷知乎看到一个问题,大概是说怎么刷网易云音乐个人累计听歌数,然后有一个高赞回答,贴了一段js代码,直接在浏览器console执行就可以了.当时试了下,直接一下子刷了有好几万.悲 ...
- java+selenium的helloworld
在学校上测试课程,接触到自动化管理工具,在加上助教工作需要改作业,所以想着学下selenium这一强大的web自动化工具. 1.lenium官网:http://www.seleniumhq.org/ ...
- java+selenium自动化实践
git+java+selenium+testng +maven+idea 1.git之代码维护(下载.分支切换.上传) 下载命令 "git clone git@github.com:Luna ...
- java selenium webdriver处理JS操作窗口滚动条
未经作者允许,禁止转载!!! java selenium webdriver处理JS操作窗口滚动条 java selenium webdriver处理JS操作窗口滚动条 import org.open ...
- Java+Selenium 3.x 实现Web自动化 - 1.自动化准备
(一)自动化准备 说明:本文主要记录了基于公司现有项目(一个电子商务平台),从0开始实现UI自动化的历程.从准备阶段,部分内容直接省略了基础知识,一切以最终做成自动化项目为目标,难免会有晦涩之处.文章 ...
- Java+selenium自动化测试基础
Java+selenium maven配置 maven的配置,但还需要建立maven的本地库,修改apach-maven的setting.xml http://www.cnblogs.com/haoa ...
- Java+selenium+Firefox/ IE/ Chrome主流浏览器自动化环境搭建
一.java+selenium+firefox 1.环境准备:JDK1.8 2.安装firefox浏览器v59 3.下载驱动:https://github.com/mozilla/geckodrive ...
随机推荐
- std::shared_future/future
std::future提供了一种访问异步操作结果的机制.
- libevent::事件::定时器
#include <cstdio> #include <errno.h> #include <sys/types.h> #include <event.h&g ...
- 简单理解TCP通信的三次握手
TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接. 位码(可以理解为请求状态): 有6种标示:SYN(synchronous建立联机) ACK(acknowledg ...
- 在VM上安装OpenWrt
1.选择'自定义',点击'下一步' 2.'硬件兼容性'默认,点击'下一步' 3.'稍后安装操作系统',点击'下一步' 4.客户机操作系统'Linux' 版本'CentOS 64位',点击'下一步' 说 ...
- PAT-1022 Digital Library (30 分) 字符串处理
A Digital Library contains millions of books, stored according to their titles, authors, key words o ...
- 多种方式实现AOP
一.使用代理工厂完成声明式增强 1.创建业务接口 public interface IdoSomeService { public void doSomething(); } 2.创建接口实现类 pu ...
- Veins(车载通信仿真框架)入门教程(二)——调用第三方库
Veins(车载通信仿真框架)入门教程(二)——调用第三方库 在借助Veins进行自己的研究时我们经常需要实现一些比较复杂的功能,有时就需要借助第三方库的帮助. 博主的研究需要使用神经网络,但是自己编 ...
- Redis(六)复制
在分布式系统中为了解决单点问题,通常会把数据复制多个副本部署到其他机器,满足故障恢复和负载均衡等需求.Redis也是如此,它为我们提供了复制功能,实现了相同数据的多个Redis副本.复制功能是高可用R ...
- js奥义:原型与原型链(2)
回顾:上一篇讲了原型对象与prototype和__proto__(传送门 )三者之间的关系 三:constructor constructor [kənˈstrʌktə(r)] :构造器, 这是子类 ...
- fenby C语言 P9
逻辑运算 真1 假0 &&与 真&&真为真 真&&假为假 假&&真为假 假&&假为假 ||或 真||真为真 真||假为真 ...