Selenium入門之元素的基本定位以及操做

1. 元素的定位css

Selenium自動化,咱們須要作的最基本的事情就是在頁面找到元素,並經過腳本程序去操做這個元素,實現模擬人操做。咱們有多種定位元素的方式能夠選擇:html

經過元素的ID定位元素:瀏覽器

findElement(By.id(element));spa

經過元素的名稱定位元素:線程

findElement(By.name(element));3d

經過元素的html中的位置定位元素:調試

findElement(By.xpath(element));orm

經過元素的標籤名稱定位元素:htm

findElement(By.tagName(element));blog

經過元素的連接名稱定位元素:

findElement(By.linkText(element));

經過元素的類名定位元素:

findElement(By.className(element));

經過元素的css定位元素:

findElement(By.cssSelector(element));

經過元素的部分連接名稱定位元素:

findElement(By.partialLinkText(element));

2. 元素的操做

不一樣的元素咱們進行不一樣的操做,按鈕的點擊、輸入框的字符輸入、或者是元素的內容獲取,不一樣的元素咱們操做的方式不一。

對ID爲element的元素進行點擊操做:

driver.findElement(By.id(element)).click();

對ID爲element的元素進行發送字符操做:

driver.findElement(By.id(element)).sendKeys(「XXXXXX」);

這是最簡單的兩例元素的操做,其實咱們還有許多的操做,能夠去慢慢的探索腳本的實現方式,好比頁面title的獲取、瀏覽器標籤的切換等等

attachments-2016-07-bEAn3Sa4577cfa3eb9d3

如圖,「關於oppo」元素在一個鼠標懸浮菜單下面,直接定位元素是定位不到的,這裏則須要幾部操做才能定位到元素, 須要用到Selenium提供的一個強大的用於真實的模擬用戶交互的一個類:Actions

 

Actions action = new Actions(driver);

Tools tool=new Tools();

boolean flag=true;

driver.get("http://www.oppo.com/cn/");

//鼠標懸浮在品牌導航標籤上面  action.moveToElement(driver.findElement(By.xpath("html/body/header/div[2]/div/div[2]/nav/div/ul/li[3]/a/span[1]"))).perform();

tool.ms(1000);    driver.findElement(By.xpath("html/body/header/div[2]/div/div[2]/nav/div/ul/li[3]/ul/li[1]/a")).click();

tool.ms(1000);

代碼中的tool.ms(1000);實際上是就是使用Thread.sleep(long millis); 使得當前線程休眠一1m,等待上一步驟響應完成。

attachments-2016-07-o57Buo7V577cfa5783d1

Actions這個類提共了一系列的API供模擬交互:

keyDown : 用於模擬按鍵被按下

  keyUp : 用於模擬按鍵鬆開

  doubleClick : 用於模擬雙擊

  clickAndHold : 用於模擬鼠標左鍵點住不放開

  release : 用於模擬鬆開鼠標,與clickAndHold相配合

  moveToElement : 將鼠標移動至元素的中間位置

  contextClick : 模擬鼠標右鍵點擊

  dragAndDrop : 拖拽

3. 小結

元素操做的步驟:

步驟一: 肯定元素的定位方式(調試更改)

步驟二: By element=(By.xpath(XX/XX));

步驟三: WebElement fdelement= driver.findElement(element);

步驟四: fdelement.click();

相關文章
相關標籤/搜索