Selenium2.0 Webdriver 随笔

Webdriver can‘t action the element when the element is out of view

1. Scroll to the element

use JavaScript to scroll the element to view

[csharp] view plaincopy

  1. ((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].scrollIntoView(true);", element);

[csharp] view plain copy

  1. ((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].scrollIntoView(true);", element);

2. Use Location to view

Use LocationInView property need use RemoteWebdriver and RemoteWebElement

Code like:

[csharp] view plaincopy

  1. RemoteWebdriver rw = new RemoteWebdriver();
  2. RemoteWebElement re = rw.FindelementOnPage(By.Id("id"));
  3. re.LocationInView;

[csharp] view plain copy

    1. RemoteWebdriver rw = new RemoteWebdriver();
    2. RemoteWebElement re = rw.FindelementOnPage(By.Id("id"));
    3. re.LocationInView;

Keypress(string locator, string keySequence) 

selenium.KeyPress("id=rd_A", "\\40")

display都有这些值,有none, inline,block...,我把none改成了block,也可以把visiblility:hidden改成visible
JavascriptExecutorj= (JavascriptExecutor)driver;
j.executeScript("document.findElementById(‘123‘).style.display=‘block‘;");
然后再WebElement.sendKeys ("c:\abc.txt");

xpath在定位更接近目标的节点时可用“//”和“/”分割路径,“//”表示相对路径,即可直接定位到元素,不管它的位置在哪;
“/”表示绝对路径,即当前目录下的直接子元素。

比如在 input 框中输入某个字符也可以使用这个方法。
action.click(element).sendKeys(keysToSend)。
这个方法也可以合并成:
action.sendKeys(element,keysToSend);

在写selenium自动化的过程中,经常会遇到这样的问题:

1.在同一个页面内做操作,比如点击某个按钮后,弹出一个框,再点击另外一个按钮,又弹出一个框 
2.此时如果第一个click操作后,第二个click再点击时,由于前一个弹出的框仍旧在前端显示,就会出错 
3.在实际人工操作中,点击出第一个框后,点击一下空白区域,在点击出现第二个框。因此,可以考虑一个点击空白区域的方法

实现方法如下

/**
 * 点击空白区域:坐标(0,0)
 */
public static void clickBlankArea(WebDriver driver) {
    Actions actions = new Actions(driver);
    actions.moveByOffset(0, 0).click().build().perform();
}

让driver先移动到一个空白位置(此处设为(0,0)坐标点),做一下点击操作即可

时间: 2024-11-03 21:04:15

Selenium2.0 Webdriver 随笔的相关文章

selenium2.0(WebDriver) API - 转载自:http://www.cnblogs.com/puresoul/p/3477918.html

1.1  下载selenium2.0的包 官方download包地址:http://code.google.com/p/selenium/downloads/list 官方User Guide:  http://seleniumhq.org/docs/ 官方API:  http://selenium.googlecode.com/git/docs/api/java/index.html 1.2.1  用webdriver打开一个浏览器 打开firefox浏览器: WebDriver driver

selenium2.0(WebDriver) API

1.1  下载selenium2.0的包 官方download包地址:http://code.google.com/p/selenium/downloads/list 官方User Guide:  http://seleniumhq.org/docs/ 官方API:  http://selenium.googlecode.com/git/docs/api/java/index.html 1.2.1  用webdriver打开一个浏览器 打开firefox浏览器: WebDriver driver

转:Selenium2.0介绍——WebDriver两种驱动浏览器的方式

如果之前熟悉Selenium RC,理解了Selenium RC是如何工作的,那么,当第一次接触Selenium WebDriver的时候,看到WebDriver居然可以不需要指定远端服务器的IP地址和端口号的,一定会惊讶的. 事实上,WebDriver有两种方式“驱动”浏览器的方式.1. Selenium Server:和Selenium RC一样的,通过指定远端服务器IP地址和端口号,由这个远端服务器来驱动浏览器.2. 直接调用:无须指定任何服务器IP地址和端口号.直接使用本地的浏览器(只要

Selenium2.0介绍

Selenium1.0和WebDriver合并创建Selenium2.0. Selenium1.0是第一个基于浏览器的开源自动化测试工具,适用于任何支持javascript浏览器.正是由于它的这一特点,导致了他的缺点,每一个浏览器对于执行javascript都有很严格的安全限制,不支持Javascript调用任何当前页面所在服务器以外的其他任何东西,以防止用户被恶意脚本攻击.这也导致了selenium在某些场景下的测试工作变得很困难,比如可以在瞬间打开一个新Chrome浏览器,但不能上传文件或者

Selenium 2.0 WebDriver 使用指南

SeleniumWebDriver注意:我们正致力于完善帮助指南的每一个章节,虽然这个章节仍然存在需要完善的地方,不过我们坚信当前你看到的帮助信息是精确无误的,后续我们会提供更多的指导信息来完善帮助文档.1.WebDriver介绍Selenium2.0最主要的新特性就是集成了WebDriverAPI.我们设计WebDriver的初衷是提供更加简单明了的接口来弥补Selenium-RCAPI的不足.在动态网页中,通常只会更新局部的html元素,WebDriver会很好的帮助用户快速定位这些元素.我

在selenium2.0中使用selenium1.0的API

Selenium2.0中使用WeDriver API对页面进行操作,它最大的优点是不需要安装一个selenium server就可以运行,但是对页面进行操作不如selenium1.0的Selenium RC API那么方便.Selenium2.0提供了使用Selenium RC API的方法: 1 // You may use any WebDriver implementation. Firefox is used hereas an example 2 WebDriver driver =

Selenium2.0+TestNG+Ant+Jenkins自动化测试浅尝

当前常用自动化测试工具 Web自动化测试工具:QTP .selenium等 性能自动化测试工具:loadrunner.jmeter等 接口自动化测试工具:SoapUI.postman等 手机自动化测试工具:robotium.appium等 自动化脚本录制 Selenium 1.0包括:selenium IDE.selenium Grid.selenium RC三部分. Selenium IDE 是嵌入到Firefox浏览器中的一个插件,实现简单的浏览器操作的录制与回放功能IDE录制的脚本可以可以

selenium2.0基本概念

关于selenium1.X的说明可以看看这个文章:http://blog.csdn.net/five3/article/details/6790925 selenium主要是通过selenium RC作为代理成功利用浏览器同源策略,注入自动化额外的JS脚本来支持自动化测试的:所以selenium1.X的所有组件包括:IDE,RC,Grid:而selenium2.X开始引入了webdriver的概念,有了webdriver就不需要再通过额外的JS在支持自动化操控了,所以就不需要破解同源,也就不需要

转:Selenium2.0之grid学习总结

(一)介绍: Grid的功能: 并行执行 通过一个中央管理器统一控制用例在不同环境.不同浏览器下运行 灵活添加变动测试机 (二)快速开始 这个例子将介绍如何使用selenium2.0的grid,并且注册一个WebDriver节点.如何使用java调用grid.这里Hub和节点都跑在同一台机器上面,但是如有你需要的话可以复制selenium-server-standalone到分布式机器上去实现. 注:selenium-server-standalone的jar包中已经包含了grid,WebDri