Selenium2.0 Webdriver 隨筆

來源:互聯網
上載者:User

標籤:ase   相對   str   移動   code   fork   sharp   res   第一個   

Webdriver can‘t action the element when the element is out of view

1. Scroll to the element

use JavaScript to scroll the element to view

[csharp] view plaincopy 
  1. ((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].scrollIntoView(true);", element);  
[csharp] view plain copy 
  1. ((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].scrollIntoView(true);", element);  



2. Use Location to view

Use LocationInView property need use RemoteWebdriver and RemoteWebElement

Code like:

[csharp] view plaincopy 
  1. RemoteWebdriver rw = new RemoteWebdriver();  
  2. RemoteWebElement re = rw.FindelementOnPage(By.Id("id"));  
  3. re.LocationInView;  
[csharp] view plain copy 
    1. RemoteWebdriver rw = new RemoteWebdriver();  
    2. RemoteWebElement re = rw.FindelementOnPage(By.Id("id"));  
    3. re.LocationInView;  

 

Keypress(string locator, string keySequence) 

selenium.KeyPress("id=rd_A", "\\40")

 

display都有這些值,有none, inline,block...,我把none改成了block,也可以把visiblility:hidden改成visible
JavascriptExecutorj= (JavascriptExecutor)driver;
j.executeScript("document.findElementById(‘123‘).style.display=‘block‘;");
然後再WebElement.sendKeys ("c:\abc.txt");

 

xpath在定位更接近目標的節點時可用“//”和“/”分割路徑,“//”表示相對路徑,即可直接定位到元素,不管它的位置在哪;
“/”表示絕對路徑,即目前的目錄下的直接子項目。

 

比如在 input 框中輸入某個字元也可以使用這個方法。
action.click(element).sendKeys(keysToSend)。
這個方法也可以合并成:
action.sendKeys(element,keysToSend);

 

在寫selenium自動化的過程中,經常會遇到這樣的問題:

1.在同一個頁面內做操作,比如點擊某個按鈕後,彈出一個框,再點擊另外一個按鈕,又彈出一個框 
2.此時如果第一個click操作後,第二個click再點擊時,由於前一個彈出的框仍舊在最上層顯示,就會出錯 
3.在實際人工操作中,點擊出第一個框後,點擊一下空白地區,在點擊出現第二個框。因此,可以考慮一個點擊空白地區的方法

實現方法如下
/** * 點擊空白地區:座標(0,0) */public static void clickBlankArea(WebDriver driver) {    Actions actions = new Actions(driver);    actions.moveByOffset(0, 0).click().build().perform();}

讓driver先移動到一個空白位置(此處設為(0,0)座標點),做一下點擊操作即可

 

 

 

Selenium2.0 Webdriver 隨筆

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.