关于selenium webdriver

//搜索二手房
 import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.chrome.ChromeDriver;

import org.openqa.selenium.WebElement;

public class NewTest{

public static void main(String[] args) throws InterruptedException {

System.setProperty ( "webdriver.chrome.driver" ,  "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chromedriver.exe" );

WebDriver driver = new ChromeDriver();

driver.get("http://shanghai.anjuke.com");

try{

WebElement input=driver.findElement(By.xpath("//input[@id=‘glb_search0‘]"));

WebElement search=driver.findElement(By.xpath("//input[@id=‘btnSubmit‘]"));

input.sendKeys("@@@");

search.click();

if(driver.getTitle().contains("@"))

System.out.println("搜索成功,跳转到"+driver.getTitle()+"页面");

else

System.out.println("搜索失败,跳转到了"+driver.getTitle()+"页面");

}catch(Exception e){

e.printStackTrace();

}finally{

Thread.sleep(3000);

driver.quit();

}

}

使用Actions类还可以这样写

import java.util.List;

import java.util.Set;

import org.openqa.selenium.By;

import org.openqa.selenium.Keys;

import org.openqa.selenium.WebDriver;

importorg.openqa.selenium.chrome.ChromeDriver;

import org.openqa.selenium.interactions.Actions;

import org.openqa.selenium.WebElement;

public class NewTest{

public staticvoid main(String[] args) throws InterruptedException {

System.setProperty ( "webdriver.chrome.driver" ,  "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chromedriver.exe" );

WebDriver driver = new ChromeDriver();

driver.get("http://shanghai.anjuke.com");

try{

WebElement input=driver.findElement(By.xpath("//input[@id=‘glb_search0‘]"));

WebElement search=driver.findElement(By.xpath("//input[@id=‘btnSubmit‘]"));

//生成Actions实例对象

Actions actions=new Actions(driver);

//输入@@@点击搜索

actions.keyDown(input, Keys.SHIFT).sendKeys("222").keyUp(Keys.SHIFT).click(search).perform();

if(driver.getTitle().contains("@"))

System.out.println("搜索成功,跳转到"+driver.getTitle()+"页面");

else

System.out.println("搜索失败,跳转到了"+driver.getTitle()+"页面");

}catch(Exception e){

e.printStackTrace();

}finally{

Thread.sleep(3000);

driver.quit();

}

}

keyDown表示按下键盘,keyUp表示松开键盘。上述代码中先是执行keyDown,这时shift键按下后面的sendKeys内容也是在shift键按下的情况输入的,所以实际输入的是@@@.

需求:登录安居客首页,切换城市到杭州
import org.openqa.selenium.By;

import org.openqa.selenium.Keys;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.chrome.ChromeDriver;

importorg.openqa.selenium.interactions.Actions;

import org.openqa.selenium.WebElement;

public class NewTest{

public static void main(String[] args) throwsInterruptedException {

System.setProperty ( "webdriver.chrome.driver" ,  "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chromedriver.exe" );

WebDriver driver = new ChromeDriver();

driver.get("http://shanghai.anjuke.com");

try{

WebElement city=driver.findElement(By.xpath("//a[@id=‘switch_apf_id_8‘]"));

WebElement citys=driver.findElement(By.xpath("//div[@id=‘city-panel‘]"));

WebElement cityOption=driver.findElement(By.xpath("//a[@title=‘杭州房产网‘]"));

//生成Actions实例对象

Actions actions=new Actions(driver);

//鼠标悬浮到城市标签

actions.moveToElement(city).perform();

if(citys.isDisplayed())

System.out.println("鼠标悬浮成功,城市模块的display:"+  citys.getCssValue("display"));

else

System.out.println("鼠标悬浮失败,城市模块的display:"+ citys.getCssValue("display"));

//点击杭州

actions.click(cityOption).perform();

if(driver.getTitle().contains("杭州"))

System.out.println("切换成功,跳转到"+driver.getTitle()+"页面");

else

System.out.println("切换失败,跳转到了"+driver.getTitle()+"页面");

}catch(Exception e){

e.printStackTrace();

}finally{

Thread.sleep(3000);

driver.quit();

}

}

由于安居客网站没有这方面的例子,下面就采用YUI类库的DEMO界面来演示

import java.util.List;

import java.util.Set;

import org.openqa.selenium.By;

import org.openqa.selenium.Keys;

import org.openqa.selenium.WebDriver;

importorg.openqa.selenium.chrome.ChromeDriver;

import org.openqa.selenium.interactions.Actions;

import org.openqa.selenium.WebElement;

public class NewTest{

public staticvoid main(String[] args) throws InterruptedException {

System.setProperty ( "webdriver.chrome.driver" ,  "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chromedriver.exe" );

WebDriver driver = new ChromeDriver();

driver.get("http://jqueryui.com/selectable/");

try{

WebElement frame=driver.findElement(By.xpath("//iframe[@class=‘demo-frame‘

driver.switchTo().frame(frame);

List<WebElement> selects=driver.findElements(By.xpath("//li[@class=‘ui-widget-content ui-selectee‘]"));

//生成Actions实例对象

Actions actions=new Actions(driver);

actions.clickAndHold(selects.get(0)).clickAndHold(selects.get(1)).click().perform();

}catch(Exception e){

e.printStackTrace();

}finally{

Thread.sleep(3000);

driver.quit();

}

}

时间: 2024-11-10 02:33:04

关于selenium webdriver的相关文章

java selenium webdriver处理JS操作窗口滚动条

未经作者允许,禁止转载!!! import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class JS20161212 { public static void main(String[] args) throws InterruptedException { // TODO

Selenium Webdriver元素定位的八种常用方式

在使用selenium webdriver进行元素定位时,通常使用findElement或findElements方法结合By类返回的元素句柄来定位元素.其中By类的常用定位方式共八种,现分别介绍如下. 1. By.name() 假设我们要测试的页面源码如下: <button id="gbqfba" aria-label="Google Search" name="btnK" class="gbqfba"><

Selenium webdriver 操作日历控件

一般的日期控件都是input标签下弹出来的,如果使用webdriver 去设置日期, 1. 定位到该input 2. 使用sendKeys 方法 比如: 但是,有的日期控件是readonly的 比如12306的这个 <input id="train_date" class="inp-txt" type="text" value="2015-03-15" name="back_train_date" a

Selenium webdriver 学习总结-元素定位

Selenium webdriver 学习总结-元素定位 webdriver提供了丰富的API,有多种定位策略:id,name,css选择器,xpath等,其中css选择器定位元素效率相比xpath要高些,使用id,name属性定位元素是最可靠,效率最高的一种办法. 1.工具选择:在我们开发测试脚本的过程中各个浏览器给我们也提供了方便定位元素的工具,我比较喜欢使用firefox的firebug工具,也是目前很多开发测试人员比较热衷的选择,原因是firefox是唯一能够集成selenium IDE

用Python selenium+webdriver的一个简单的登录自动化测试--豆丁网登录测试

#coding=utf-8 from selenium import webdriver #from selenium.webdriver.remote import switch_to #from selenium.webdriver.common import alert #import unittest  import time,os def users_zidian():  #用户名用例用一个字典实现参数化调用#     users={'zhengshuheng':'123456','[

【Selenium WebDriver】元素定位函数 FindElement

定位Web页面上的元素,用FindElement函数,它可以根据元素的不同属性来快速定位.具体的属性如下: 例子: HTML页面文件: 1 <html xmlns="http://www.w3.org/1999/xhtml" lang="en-us"> 2 <head> 3 <body> 4 <form name="loginForm"> 5 <label for="username

selenium webdriver处理浏览器Cookie

有时候我们需要验证浏览器中是否存在某个cookie,因为基于真实的cookie 的测试是无法通过白盒和集成测试完成的.WebDriver 提供了操作Cookie 的相关方法可以读取.添加和删除cookie 信息.WebDriver 操作cookie 的方法有:? getCookies() 获得所有cookie 信息? addCookie(cookie_dict) 添加cookie,必须有name 和value 值? deleteAllCookies() 删除所有cookie 信息? delete

selenium webdriver 截屏操作

有时候我们需要进行截屏操作,特别是遇到一些比较重要的页面信息(出现错误)或者出现不同需要进行对比时, 我们就需要对正在处理的页面进行截屏! 未经作者允许,禁止转载! package test_wait20161205; import java.io.File; import java.io.IOException; import org.apache.commons.io.FileUtils; import org.openqa.selenium.OutputType; import org.o

selenium webdriver学习(六)------------如何得到弹出窗口

在selenium 1.X里面得到弹出窗口是一件比较麻烦的事,特别是新开窗口没有id.name的时候.当时还整理了处理了几种方法,详见:http://seleniumcn.cn/read.php?tid=791 .在selenium webdriver中得到新开窗口相对简单的多,它无关新开窗口的id.name等属性.以下面的html为例: [html] view plaincopyprint? <span style="white-space: normal; background-col

[selenium webdriver Java]元素定位——findElement/findElements

策略 语法 语法 描述 By id driver.findElement(By.id()) driver.findElements(By.id()) 通过id属性定位元素 By name driver.findElement(By.name()) driver.findElements(By.name()) 通过name属性定位元素 By class name driver.findElement(By.className()) driver.findElements(By.className(