selenium2java調用JavaScript方法封裝

本人在學習selenium2java的時候,遇到元素存在但由於被其餘元素擋住了,致使沒法點擊的問題,多方請教後,使用js點擊解決了困擾。我又寫了幾個js點擊元素的方法,如今分享出來,供你們參考。java

//經過js點擊
public static void clickByJs(WebDriver driver, WebElement element) {
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("arguments[0].click();", element);
//第二種點擊方法
// ((JavascriptExecutor) driver).executeScript("arguments[0].click()", question);
}

下面這個方法在發散一下,寫了一些Selenium調用JavaScript的方法封裝​。編程

//經過js點擊
	public void clickByJs(WebElement element) {
		JavascriptExecutor js = (JavascriptExecutor) driver;
		js.executeScript("arguments[0].click();", element);
		//第二種點擊方法
//		((JavascriptExecutor) driver).executeScript("arguments[0].click()", question);
	}
	//經過xpath獲取元素用js點擊
	public void clickByJsByXpath(String xpath) {
		clickByJs(driver.findElement(By.xpath(xpath)));
	}
	public void clickByJsByText(String text) {
		clickByJs(findElementByText(text));
	}
	public void clickByJsById(String id) {
		clickByJs(findElementById(id));
	}
	public void clickByJsByClassName(String name) {
		clickByJs(findElementByClassName(name));
	}
	public void clickByJsByName(String name) {
		clickByJs(findElementByName(name));
	}
	
		//滾動到最上方
	public void scrollToTop() {
		((JavascriptExecutor)driver).executeScript("window.scrollTo(0,0);");
//		JavascriptExecutor js = (JavascriptExecutor) driver;
//		js.executeScript("window.scrollTo(0,0);");
	}
	//js滾動頁面內div
	public void scrollToBottomById(String id) {
		JavascriptExecutor js = (JavascriptExecutor) driver;
		js.executeScript("arguments[0].scrollTo(0, 3000);", findElementById(id));
	}
	//使用js使元素隱藏元素顯示
	public void makeDisplayById(String id) {
		JavascriptExecutor  js = (JavascriptExecutor)driver;
		js.executeScript("document.getElementById(id).style.display='block';");
	}
	public void makeElementDisplay(WebElement element) {
		JavascriptExecutor  js = (JavascriptExecutor)driver;
//		WebElement element = driver.findElement(By.xxx);
		js.executeScript("arguments[0].style=arguments[1]", element, "display: block;");
	}
	//js輸入文本
	public void inputTextByJsById(String text, String id) {
		JavascriptExecutor js = (JavascriptExecutor) driver;
		js.executeScript("arguments[0].value=\"2016-08-20\"",driver.findElement(By.id(id)));
	}
	//js輸入文本
	public void inputTextByJs(String text, WebElement element) {
		JavascriptExecutor js = (JavascriptExecutor) driver;
		js.executeScript("arguments[0].value=" + text + "\"", element);
	}

往期文章精選

  1. java一行代碼打印心形
  2. Linux性能監控軟件netdata中文漢化版
  3. 接口測試代碼覆蓋率(jacoco)方案分享
  4. 性能測試框架
  5. 如何在Linux命令行界面愉快進行性能測試
  6. 圖解HTTP腦圖
  7. 寫給全部人的編程思惟
  8. 測試之JVM命令腦圖
  9. 將json數據格式化輸出到控制檯
  10. 如何測試機率型業務接口
  11. 「雙花」BUG的測試分享
  12. 將swagger文檔自動變成測試代碼

公衆號地圖 ☢️ 一塊兒來~FunTester

相關文章
相關標籤/搜索