業(yè)務(wù)流程:
1.打開此網(wǎng)頁 http://nanjing.xiaomishu.com/shop/search/sp2048_745
2.向下拖動滾動條,右下角自動會出現(xiàn)【投訴與建議】(此網(wǎng)頁已經(jīng)修改不拖動也出現(xiàn)了,以前是沒有的,)
3.點(diǎn)擊【投訴與建議】
4.在打開的div 層中輸入姓名,郵件,內(nèi)容 并點(diǎn)擊確定
5.驗(yàn)證頁面上的提示文字


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("http://input[@id='repName']")).sendKeys("1"); driver.findElement(By.xpath("http://input[@id='repMail']")).sendKeys("1"); driver.findElement(By.xpath("http://textarea[@id='repContent']")).sendKeys("hello"); driver.findElement(By.xpath("http://a[@id='repBtn']")).click(); Assert.assertEquals("您輸入的郵箱格式不正確", driver.findElement(By.xpath("http://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中會報(bào)stack overflow的錯(cuò)誤,一直以來是以為沒有加等待時(shí)間而沒找到
后來試了很多方法,最后發(fā)現(xiàn)用xpath就解決了,真是耽誤了很久的時(shí)間
給大家借鑒,如果一個(gè)定位方法不能用時(shí),多換換其他的
這個(gè)例子中我們學(xué)習(xí)了如何用JS控制滾動條,如何最大化IE頁面。