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

业务流程:

1.打开此网页 http://nanjing.xiaomishu.com/shop/search/sp2048_745
2.向下拖动滚动条,右下角自动会出现【投诉与建议】(此网页已经修改不拖动也出现了,以前是没有的,)
3.点击【投诉与建议】
4.在打开的div 层中输入姓名,邮件,内容 并点击确定
5.验证页面上的提示文字






package com.example.tests;

import org.junit.*;
import org.openqa.selenium.*;
import org.openqa.selenium.ie.InternetExplorerDriver;


public class SeleniumWebDriver {
	public static WebDriver driver;
	
	@Test
	public void testUnit() {
		driver = new InternetExplorerDriver();
		driver.get("http://nanjing.xiaomishu.com/shop/search/sp2048_745");
		
		maxBrowser(driver);
		setScroll(driver,500);

		driver.findElement(By.linkText("投诉与建议")).click();	
		driver.findElement(By.xpath("//input[@id='repName']")).sendKeys("1");
		driver.findElement(By.xpath("//input[@id='repMail']")).sendKeys("1");
		driver.findElement(By.xpath("//textarea[@id='repContent']")).sendKeys("hello");
		driver.findElement(By.xpath("//a[@id='repBtn']")).click();
		
		Assert.assertEquals("您输入的邮箱格式不正确", driver.findElement(By.xpath("//div[@id='floatBox_remind']/span")).getText());
		
	}
	
	
	//将IE最大化
		public static void  maxBrowser(WebDriver driver){
			try {
				String maxBroswer = "if (window.screen) {window.moveTo(0, 0);" +
						"window.resizeTo(window.screen.availWidth,window.screen.availHeight);}";
				
				JavascriptExecutor jse=(JavascriptExecutor) driver;
				jse.executeScript(maxBroswer);
			} catch (Exception e) {
				System.out.println("Fail to  Maximization browser");
			}
		}
	
	//将滚动条滚到适合的位置
	public static void setScroll(WebDriver driver,int height){
		try {
			String setscroll = "document.documentElement.scrollTop=" + height;
			
			JavascriptExecutor jse=(JavascriptExecutor) driver;
			jse.executeScript(setscroll);
		} catch (Exception e) {
			System.out.println("Fail to set the scroll.");
		}			
	}	
}

对于这种顶级div层,一开始用id来定位,在firefox中可以正常跑
在IE中会报stack overflow的错误,一直以来是以为没有加等待时间而没找到
后来试了很多方法,最后发现用xpath就解决了,真是耽误了很久的时间
给大家借鉴,如果一个定位方法不能用时,多换换其他的

这个例子中我们学习了如何用JS控制滚动条,如何最大化IE页面。

转载于:https://my.oschina.net/xxjbs001/blog/362108

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值