1. 程式人生 > 其它 >Web元素定位總結-自動化測試

Web元素定位總結-自動化測試

技術標籤:自動化測試selenium定位

放大視窗:

driver.manage().window().maximize();

轉換iframe:

	driver.switchTo().frame("leftFrame");
	driver.switchTo().defaultContent(); 
	driver.switchTo().frame("mainFrame");

a標籤:

driver.findElement(By.linkText(“商品管理”)).click();

id定位:

driver.findElement(By.id(“productPrice”)).sendKeys(“2000”);

下拉列表:

Select select = new Select(driver.findElement(By.name("goodsType")));
      //獲取所有選項的方法
        List<WebElement> lst = select.getOptions();
        for (WebElement webElement : lst) {
           // System.out.println("獲取所有選項的方法依次輸出文字值:"+webElement.getText());
        }
        //根據索引選中對應的元素
select.selectByIndex(1);

類名:

driver.findElement(By.className(“cmdField”)).click();

name值:

driver.findElement(By.name(“productID”)).sendKeys(“1”);

CSS精準定位:

driver.findElement(By.cssSelector(“a[data-id=‘16516564’]”));

tagname定位:

By.cssSelector(“input”);

id定位:

By.cssSelector("input#id"
); By.cssSelector("#id");

classname定位:

By.cssSelector(".classname");

Xpath定位多屬性:

//input[@maxlength=‘100’ and @auto=‘off’]
//a[text()=‘新聞’]
//a[contains(text(),‘聞’)]

獲取當前頁面URL地址:

driver.getCurrentURL();

獲取當前頁面標題:

driver.getTitle();

獲取當前原始碼:

driver.getPageSource();

navigation物件

Navigation navigation=driver.navigation();

訪問網站:

navigation.to(“https://www.jd”.com");

重新整理網站:

navigation.refresh();

回退:

navigation.back

前進:

navigation.forward

硬性等待:

Thread.sleep(1000);

隱式等待(全域性):

driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS);

## 顯示等待:

```java
webdriverwait webdriverwait=new webdriverwait();
                webdriverwait.until(expectCondition);

特殊元素操作:

Alert——Confirm
Alert alert=driver.switchTo().alert();
alert.accept();//接受,確認
alert.dismiss();//取消
alert.getText();

時間控制元件:
在這裡插入圖片描述

滑鼠拖拽:

//找到我們所要拖動的元素A
WebElement A = driver.findElement(By.xpath("//*[@id=\"ext-gen153\"]/li[1]/div"));
WebElement B=driver.findElement(By.xpath("//*[@id=\"ext-gen153\"]/li[2]/div"));
Actions action = new Actions(driver.getDriver());   
//滑鼠拖動A向左移動530,之後釋放滑鼠
action.dragAndDropBy(A, -570, 0).perform();
// 滑鼠拖動B向下移動100,向左移動570之後釋放滑鼠
action.dragAndDropBy(k2, -570, 100).perform();
##注意:拖動元素之間最好加強制休眠時間,否則不定時出問題,也不報錯,
action.dragAndDrop(A, B).perform();
driver.sleep(2000);
action.dragAndDrop(B, A).perform();

在這裡插入圖片描述

檔案上傳:
在這裡插入圖片描述

驗證碼:.1去掉 2.萬能驗證碼

不可用的元素:
js="document.getElementById('username').removeAttribute('disabled')"
driver.execute_script(js)
不可見的元素處理:
js="document.getElementById('username').style.display=''"
driver.execute_script(js)