【转】selenium技巧 - 通过js来控制滚动条,通过xpath定位最上层的div层

http://blog.csdn.net/iceryan/article/details/8162703

业务流程:
 
1.打开此网页 http://nanjing.xiaomishu.com/shop/search/sp2048_745
2.向下拖动滚动条,右下角自动会出现【投诉与建议】(此网页已经修改不拖动也出现了,以前是没有的,)
3.点击【投诉与建议】
4.在打开的div 层中输入姓名,邮件,内容 并点击确定
5.验证页面上的提示文字
 
 
【转】selenium技巧 - 通过js来控制滚动条,通过xpath定位最上层的div层
 
【转】selenium技巧 - 通过js来控制滚动条,通过xpath定位最上层的div层
 
  1. package com.example.tests;
  2. import org.junit.*;
  3. import org.openqa.selenium.*;
  4. import org.openqa.selenium.ie.InternetExplorerDriver;
  5. public class SeleniumWebDriver {
  6. public static WebDriver driver;
  7. @Test
  8. public void testUnit() {
  9. driver = new InternetExplorerDriver();
  10. driver.get("http://nanjing.xiaomishu.com/shop/search/sp2048_745");
  11. maxBrowser(driver);
  12. setScroll(driver,500);
  13. driver.findElement(By.linkText("投诉与建议")).click();
  14. driver.findElement(By.xpath("//input[@id='repName']")).sendKeys("1");
  15. driver.findElement(By.xpath("//input[@id='repMail']")).sendKeys("1");
  16. driver.findElement(By.xpath("//textarea[@id='repContent']")).sendKeys("hello");
  17. driver.findElement(By.xpath("//a[@id='repBtn']")).click();
  18. Assert.assertEquals("您输入的邮箱格式不正确", driver.findElement(By.xpath("//div[@id='floatBox_remind']/span")).getText());
  19. }
  20. //将IE最大化
  21. public static void  maxBrowser(WebDriver driver){
  22. try {
  23. String maxBroswer = "if (window.screen) {window.moveTo(0, 0);" +
  24. "window.resizeTo(window.screen.availWidth,window.screen.availHeight);}";
  25. JavascriptExecutor jse=(JavascriptExecutor) driver;
  26. jse.executeScript(maxBroswer);
  27. } catch (Exception e) {
  28. System.out.println("Fail to  Maximization browser");
  29. }
  30. }
  31. //将滚动条滚到适合的位置
  32. public static void setScroll(WebDriver driver,int height){
  33. try {
  34. String setscroll = "document.documentElement.scrollTop=" + height;
  35. JavascriptExecutor jse=(JavascriptExecutor) driver;
  36. jse.executeScript(setscroll);
  37. } catch (Exception e) {
  38. System.out.println("Fail to set the scroll.");
  39. }
  40. }
  41. }
对于这种*div层,一开始用id来定位,在firefox中可以正常跑
在IE中会报stack overflow的错误,一直以来是以为没有加等待时间而没找到
后来试了很多方法,最后发现用xpath就解决了,真是耽误了很久的时间
给大家借鉴,如果一个定位方法不能用时,多换换其他的
这个例子中我们学习了如何用JS控制滚动条,如何最大化IE页面。
上一篇:JS实现拖动div层移动


下一篇:使用jQuery 中的显示与隐藏动画效果实现折叠下拉菜单的收缩和展开,在页面的列表中有若干项,列表的每项中有一个二级列表,二级列表默认为隐藏状态。点击列表的项,切换二级列表的显示或隐藏状态