1. 程式人生 > >selenium常用操作

selenium常用操作

selenium文件

Selenium IDE介面說明:

1.檔案:建立、開啟和儲存測試案例和測試案例集;編輯:複製、貼上、刪除、撤銷和選擇測試案例中的所有命令;Options : 用於設定seleniunm IDE

2. 用來填寫被測網站的地址

3. 速度控制:控制案例的執行速度

4. 執行所有:執行一個測試案例集中的所有案例

5. 執行:運行當前選定的測試案例

6. 暫停/恢復:暫停和恢復測試案例執行

7. 單步:可以執行一個案例中的一行命令

8. 錄製:點選之後,開始記錄你對瀏覽器的操作

9. 案例集列表

10. 測試指令碼;table標籤:用表格形式展現命令及引數;source標籤:用原始方式展現,預設是HTML語言格式,也可以用其他語言展示

11. 檢視指令碼執行通過/失敗的個數

12. 當選中前命令對應引數

13. 日誌:當你執行測試時,錯誤和資訊將會自定顯示;參考:當在表格中輸入和編輯selenese命令時,面板中會顯示對應的參考文件;UI元素:參考幫助選單中的;Rollup:暫無

selenium中close和quit的區別

         close:表示關閉當前頁面(視窗)

         quit:表示退出瀏覽器

元素定位方法:

定位方法

Java語言實現例項

id 定位

driver.findElement(By.id(“id的值”));

name 定位

diver.findElement(By.name(“name的值”));

連結的全部文字定位

driver.findElement(By.linkText(“連結的全部文字”));

連結的部分文字定位

driver.findElement(By.partialLinkText(“連結的部分文字”));

css 方式定位

driver.findElement(By.cssSelector(“css表示式”));

xpath 方式定位

driver.findElement(By.xpath(“xpath表示式”));

Class 名稱定位

driver.findElement(By.className(“class屬性”));

TagName 標籤名稱定位

driver.findElement(By.tagName(“標籤名稱”));

Jquery方式

Js.executeScript(“return jQuery.find(“jquery表示式”)”)

1.通過ID查詢元素:By.id()

  以百度主頁為例:搜尋框的HTML示例程式碼如下,它的ID為kw

<input type="text"class="s_ipt" name="wd" id="kw"maxlength="100" autocomplete="off">

  “百度一下”搜尋按鈕元素的HTML示例程式碼如下,它的ID為su

<input type="submit"value="百度一下"id="su" class="btn self-btn bg s_btn">

 selenium/webdriver中通過ID查詢元素的java例項程式碼:

 Webdriver driver = new FirefoxDriver();

 driver.get(“https://www.baidu.com/”);

 WebElement searchBox = driver.findElement(By.id(“kw”));

 searchBox.sendKeys(“小坦克 部落格園”);

 WebElement searchButton = driver.findElement(By.id(“su”));

  searchButton.submit();

 driver.close();

2. 通過Name查詢元素:By.name()

以豆瓣網的主頁搜尋框為例, 其搜尋框的HTML程式碼如下,  它name是: q

<input type="text" maxlength="60"size="12" placeholder="書籍、電影、音樂、小組、小站、成員" name="q" autocomplete="off">

  WebDriver中通過name查詢豆瓣主頁上的搜尋框的Java程式碼如下:

WebDriver driver  = newFirefoxDriver();

 driver.get("https://www.douban.com/");

 WebElement searchBox = driver.findElement(By.name("q"));

 searchBox.sendKeys("小坦克");

 searchBox.submit();

3. 通過TagName查詢元素: By.tagName()

通過tagName來搜尋元素的時候,會返回多個元素. 因此需要使用findElements()

   WebDriver driver  = newFirefoxDriver();

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

   List<WebElement> buttons =driver.findElements(By.tagName("div"));

   System.out.println("Button:" + buttons.size());

注意:  如果使用tagName,  要注意很多HTML元素的tagName是相同的,

比如單選框,複選框, 文字框,密碼框.這些元素標籤都是input.  此時單靠tagName無法精確獲取我們想要的元素, 還需要結合type屬性,才能過濾出我們要的元素

   WebDriver driver  = newFirefoxDriver();

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

   List<WebElement> buttons = driver.findElements(By.tagName("input"));

   for (WebElement webElement : buttons) {

        if (webElement.getAttribute("type").equals("text")){

            System.out.println("input text is :" + webElement.getText());

        }

    }

3. 通過ClassName 查詢元素 By.className

   以淘寶網的主頁搜尋為例, 其搜尋框的HTML程式碼如下:   class="search-combobox-inpu

t"

<input autocomplete="off" autofocus="true"accesskey="s" aria-label="請輸入搜尋文字" name="q" id="q"class="search-combobox-input" aria-haspopup="true"aria-combobox="list"

role="combobox" x-webkit-grammar="builtin:translate"tabindex="0">

   WebDriver driver  = new FirefoxDriver();

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

   Thread.sleep(15000);

   WebElement searchBox =driver.findElement(By.className("search-combobox-input"));

  searchBox.sendKeys("羽絨服");

   searchBox.submit();

注意:使用className 來進行元素定位時,有時會碰到一個

4. 通過LinkText查詢元素 By.linkText();

  直接通過超連結上的文字資訊來定位元素:例如

<ahref="https://passport.baidu.com/v2/?login&amp;tpl=mn&amp;u=http%3A%2F%2Fw

ww.baidu.com%2F" name="tj_login" class="lb"onclick="return false;">登入</a>

  例項程式碼:

  WebDriverdriver  = new FirefoxDriver();

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

 WebElement loginLink = driver.findElement(By.linkText("登入"));

 loginLink.click();

5. 通過PartialLinkText查詢元素 By.partialLinkText()

  此方法是上一個方法的加強版,單你只想用一些關鍵字匹配的時候,可以使用這個方法,通過部分超連結文字來定位元素

HTML 程式碼如下

  WebDriverdriver = new FirefoxDriver();

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

 WebElement loginLink = driver.findElement(By.partialLinkText("登"));

 loginLink.click();

  注:用這種方法定位時,可能會引起的問題是,當你的頁面中不知一個超連結包含“等”時, findElement方法只會返回第一個查詢到的元素,而不會返回所有符合條件的元素;如果你想要獲得所有符合條件的元素,還是隻能用findElements方法

6. xpath定位

{ xpath 這種定位方式,webdriver會將整個頁面的所有元素進行掃描以定位我們所需要的元素,這是個非常費時的操作,如果指令碼中大量使用xpath做元素定位的話, 指令碼的執行速度可能會稍慢 }

絕對路徑和相對路徑的區別----絕對路徑  以"/"  開頭, 讓xpath 從文件的根節點開始解析

                        -----相對路徑  以"//"開頭, 讓xpath 從文件的任何元素節點開始解析

7. XPATH元素定位(升級版)

1)通過絕對路徑定位

  By.xpath(“html/body/div/form/input”);

2)通過相對路徑定位

 By.xpath(“//input//div”);

3)通過元素索引定位

 By.xpath(“//input[4]”);

4)使用xpath+節點屬性定位(結合第2、第3中方法可以使用)

 By.xpath(“//input[@id=’kw1’]”);

 By.xpath(“//input[@type=’name’ and @name=’kw1’]”);

5)使用部分屬性值匹配

 By.xpath(“//input[start-with(@id, ’nice’)]”);

 By.xpath(“//input[ends-with(@id, ‘很漂亮’)]”);

 By.xpath(“//input[contains(@id, ‘那麼美’)]”);

6)使用前集中方法的組合

 By.xpath(“//input[@id=’kw1’]//input[start-with(@id, ‘nice’)]/div[1]/form[3]”);

常見web UI 元素操作 及API使用

{ http://www.cnblogs.com/TankXiao/p/5252754.html}

1.連結(link)

<div>

       <p>連結 link</p>

       <a href="www.cnblogs.com/tankxiao">小坦克</a>

   </div>

  連結操作:

  //找到連結

 WebElement link1 = driver.findElement(By.linkText(“小坦克”));

 WebElement link1 = driver.findElement(By.partialLinkText(“坦克”));

  //點選連結

 link1.click();

2.輸入框textbox

<div>

       <p>輸入框 testbox</p>

       <input type="text" id="usernameid"value="username" />

   </div>

  輸入框操作:

  //找到元素

 WebElement element = driver.findElement(By.id(“usernameid”));

  //在輸入框中輸入內容

  element.sendKeys(“test111111”);

  //清空輸入框

 element.clear();

  //獲取輸入框的內容

 element.getAttribute(“value”);

3.按鈕(Button)

 <div>

    <p>按鈕</p>

    <input type="button" value=”新增” id=”proAddItem_0” />

 </div>

  //找到元素

 String xpath = “//path[@value=’新增’]”;

 WebElement addButton = driver.findElement(By.xpath(xpath));

//點選按鈕

addButton.click();

  //判斷是否enable

 addButton.isEnabled();

4.下拉選擇框(Select)

 <div>

   <p>下拉選擇 Select</p>

   <select id=”proAddItem_kind” name=”kind”>

     <option value="1">電腦硬體</option>

     <option value="2">房產</option>

     <option value="18">種類AA</option>

     <option value="19">種類BB</option>

     < option value="20">種類BB</ option >

     < option value="21">種類CC</ option >

    </select>

 </div>

  下拉選擇框的操作:

  //找到元素

 Select select = new Select(driver.findElement(By.id(“proAddItem_kind”)));

  //選擇對應的選項,index 從0開始的

 select.selectByIndex(2);

 select.selectByValue(“18”);

 select.selectByVisibleText(“種類AA”);

  //獲取所有的選項

 List<WebElement> options = select.getOption();

 for(WebElement webElement : option){

   System.out.println(webElement.getText());

  }

5.單選按鈕(RadioButton)

  <div>

    <p>單選項Radio Button</p>

    <inputtype="radio" value="Apple" name="fruit>"/>Apple

    <inputtype="radio" value="Pear" name="fruit>" /> Pear

    <inputtype="radio" value="Banana" name="fruit>"/> Banana

    <inputtype="radio" value="Orange" name="fruit>"/> Orange

  </div>

  單選項元素的操作

  //找到元素

 String xpath = “//input[@type=’radio’][@value=’Apple’]”;

 WebElement apple = driver.findElement(By.xpaty(xpath));

  //選擇某個元素

 applie.click();

  //判斷某個單選框是否已經被選擇

  BooleanisAppleSelect = apple.isSelected();

  //獲取元素屬性

 apple.getAttribute(“value”);

6.多選框

 <div>

    <p>多選項Radio Button</p>

    <inputtype="radio" value="Apple" name="fruit>"/>Apple

    <inputtype="radio" value="Pear" name="fruit>" /> Pear

    <inputtype="radio" value="Banana" name="fruit>"/> Banana

    <inputtype="radio" value="Orange" name="fruit>"/> Orange

 </div>

  多選框的操作和單選框一模一樣的

操作瀏覽器

1.瀏覽器最大化、前進、多退、重新整理

public static void testBrowser(WebDriverdriver) throws Excepotion{

 driver.get(“http://www.cnblogs.com/tankxiao”);

 Thread.sleep(5000);

  //瀏覽器最大化

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

 driver.navigate().to(“http://www.baidu.com”);

  //重新整理瀏覽器

 driver.naviget.refresh();

  //瀏覽器後退

  driver.navigate.back();

  //瀏覽器前進

 driver.navigate.forward();

  //瀏覽器退出

 driver.quit();

}

2.截圖操作

public static void testScreenShot(WedDriverdriver) throws Exception{

 driver.get(“http://www.baidu.com”);

 File srcFile = ((TakesScreenshot)driver).getSreenshotAs(OutputType.FILE);

  /**

* 利用FileUtils工具類的copyFile()方法儲存getScreenshotAs()返回的檔案物件

         *new File()第一個引數表示截圖儲存路徑;如果該檔案在本工程目錄下,只需要填寫資料夾名字即可;如果該資料夾沒有在該工程目錄下,則需要填寫完成的路徑

         *new File()第二個引數表示截圖儲存的檔名

*/

  FileUtils.copyFile(srcFile,new File("snapshot", System.currentTimeMillis()  + ".png"));

}

3.模擬滑鼠操作

public static voidrightClickMouse(WebDriver driver){

 driver.get(“http://www.baidu.com”);

 Action action = new Action(driver);

 action.contextClick(driver.findElement(By.id(“kw”))).perform();

}

4.殺掉Windows瀏覽器程序

public static void killProcess(){

  //killfirefox

 WindowsUtils.tryToKillByName(“firefox.exe”);

 //kill IE

 WindowsUtils.tryToKillByName(“iexplore.exe”);

 //kill chrome

 WindowsUtils.tryToKillByName(“chrome.exe”);

}

操作彈出對話方塊

1.對話方塊型別

  1)警告框:用於提示使用者相關資訊的驗證結果, 錯誤或警告等


  2)提示框:用於提示使用者在當前對話方塊中輸入資料,一般需要使用者單擊取消或者確認按鈕


  3)確認框:用於提示使用者確認或者取消某個操作,一般需要使用者單擊取消或者確認按鈕


  操作對話方塊程式碼:

public static void testAlert(WebDriverdriver)

    {

       String url="http://sislands.com/coin70/week1/dialogbox.htm";

       driver.get(url);

       WebElement alertButton =driver.findElement(By.xpath("//input[@value='alert']"));

       alertButton.click();

       Alert javascriptAlert = driver.switchTo().alert();

       System.out.println(javascriptAlert.getText());

       javascriptAlert.accept();

    }

   public static void testPrompt(WebDriver driver) throws Exception

    {

       String url="http://sislands.com/coin70/week1/dialogbox.htm";

       driver.get(url);

       WebElement promptButton =driver.findElement(By.xpath("//input[@value='prompt']

"));

       promptButton.click();

       Thread.sleep(2000);

       Alert javascriptPrompt = driver.switchTo().alert();

       javascriptPrompt.sendKeys("This is learning Selenium");

       javascriptPrompt.accept();   

       System.out.println(javascriptPrompt.getText());

       javascriptPrompt=driver.switchTo().alert();

       javascriptPrompt.accept();

       Thread.sleep(2000);

       promptButton.click();

       javascriptPrompt=driver.switchTo().alert();

       javascriptPrompt.dismiss();

       Thread.sleep(2000);

        javascriptPrompt=driver.switchTo().alert();

       javascriptPrompt.accept();

    }

   public static void testConfirm(WebDriver driver) throws Exception

    {

       String url="http://sislands.com/coin70/week1/dialogbox.htm";

       driver.get(url);

       WebElement confirmButton =driver.findElement(By.xpath("//input[@value='confirm']

"));

       confirmButton.click();

       Thread.sleep(2000);

       Alert javascriptConfirm = driver.switchTo().alert();

       javascriptConfirm.accept();

       Thread.sleep(2000);

       javascriptConfirm = driver.switchTo().alert();

       javascriptConfirm.accept();

    }

2.原理

在程式碼裡,通過Set<String>allWindowsId = driver.getWindowHandles();來獲取到所有彈出瀏覽器的控制代碼,然後遍歷,使用swithcto.window(newwindow_handle)方法。就可以定位到新的視窗

3.測試頁面的HTML

<html> 

   <head> 

<title>Alert</title> 

   </head> 

   <body> 

   <input id = "alert" value = "alert" type ="button" onclick = "alert('歡迎!請按確認繼續!');"/> 

   <input id = "confirm" value = "confirm" type ="button" onclick = "confirm('確定嗎?');"/> 

   <input id = "prompt" value = "prompt" type ="button" onclick = "var name = prompt('請輸入你的名字:','請輸入  你的名字'); document.write(name) "/>

   </body>

</html>

4.Java程式碼

public static voidtestMultipleWindowsTiltle(Webdriever driver) throws Exception{

 String url = “E:\\StarthFolder\\[email protected]\\Stash\\Tank-MonkeyProject\\Selenium

WebDriver\\AllUIElement.html”;

  driver.get(url);

  //獲取當前視窗的控制代碼

  String parenWindowId =driver.getWindowHandle();

  System.out.println(“driver.getTitle():”+ driver.getTitle());

  WebElement button =driver.findElement(By.xpath(“//input[@value=’開啟視窗’]”));

  button.click();

  Set<String>allWindowId = driver.getWindowHandles();

  //獲取所有開啟的視窗的控制代碼

  for(String windowId :allWindowsId){

   if(driver.switchTo().window(windowId).getTitle().contains(“部落格園”)){

 driver.switchTo().window(windowId);

  break;

}

}

System.out.println(“driver.getTitle():” + driver.getTitle());

//再次切換回原來的父視窗

driver.switchTo().window(parentWindowId);

System.out.println(“parentWindowId:” + driver.getTitel());

}

driver.switchTo().alert() 這句可以得到alert\confirm\prompt對話方塊的物件

. getText() 得到它的文字值
. accept()
相當於點選它的"確認"
. dismiss()
相當於點選"取消"或者叉掉對話方塊
. sendKeys()
輸入值

智慧等待頁面載入完成

例項:set_timeout.html 下面的html 程式碼,  點選click 按鈕5秒後,頁面上會出現一個紅色的div快,我們需要寫一段自動化指令碼智慧的去判斷這個div是否存在,然後把這個div 然後高亮

<html>

   <head>

       <title>Set Timeout</title>

       <style>

           .red_box {background-color:red; width = 20%; height: 100px; border: none;}

       </style>

       <script>

           function show_div(){

               setTimeout("create_div()", 5000);

           }

           function create_div(){

               d =document.createElement('div');

                d.className ="red_box";

                document.body.appendChild(d);

           }

       </script>

   </head>

   <body>

       <button id = "b" onclick ="show_div()">click</button>

   </body>

</html>

1.隱式等待

 WebDriver driver = new FireFfoxDriver();

 driver.get(“file:///C:/Users/Tank/Desktop/set_timeout.html”);

 driver.manage().timeouts().implicitlyWait(20, TimeUnitl.SENCONDS);

  //等待10s,如果10s元素還不存在,就會丟擲異常

 WebElement element = driver.findElement(By.cssSelector(“.red_box”));

 ((JavascriptExecutor)driver).executeScript(“argument[0].style.border= \"5pxsolid yellow\"”, element);

2.顯示等待

等待的條件

WebDriver方法

頁面元素是否在頁面上可用和可被單擊

elementToBeClickable(By locator)

頁面元素處於被選中狀態

elementToBeSelected(WebElement element)

頁面元素在頁面中存在

presenceOfElementLocated(By locator)

在頁面元素中是否包含特定的文字

textToBePresentInElement(By locator)

頁面元素值

textToBePresentInElementValue(By locator, java.lang.String text)

標題 (title)

titleContains(java.lang.String title)

  只有滿足顯式等待的條件滿足,測試程式碼才會繼續向後執行後續的測試邏輯;如果超過設定的最大顯式等待時間閾值,這測試程式會丟擲異常。

 public static void testWait2(WebDriver driver){

     driver.get(“E:\\StashFolder\\[email protected]\\Stash\\Tank-MoneyProject\\浦東軟體園培訓中心\\我的教材\\SeleniumWebdriver\\set_timeout.html”);

  WebDriver wait = newWebDriverWait(driver ,30);

 wait.until(ExpectedConditons.presenceOfElementLocated(By.cssSelector(“.red_box”)));

  WebDriver element =driver.findElement(By.cssSelector(“.red_box”));

 ((JavascriptExcutor)driver).excuteScript(“argument[0].style.border = \"5pxsolid yellow\"", element);

}

滑鼠操作

點選滑鼠左鍵:

 Actions action = new Actions(driver);

 action.click();  //在當前位置點選左鍵

 action.click(driver.findElement(By.id(“”)));  //在指定位置單機左鍵

點選滑鼠右鍵:

 Actions action = new Actions(driver);

 action. contextClick ();  //在當前位置點選右鍵

 action. contextClick (driver.findElement(By.id(“”)));  //在指定位置點選右鍵

雙擊滑鼠:

Actions action = new Actions(driver);

 action. doubleClick();  //在當前位置點選左鍵

 action. doubleClick (driver.findElement(By.id(“”)));  //再指定位置雙擊

拖拽動作

Actions action = new Actions(driver);

 action. dragAndDrop (source,target);  //將source元素拖放到target元素的位置

 action. doubleClick (source, xOffset, yOffset);  //將source元素拖放到(xOffset, yOffset)位置,其中xOffset為橫座標,yOffset為縱座標

滑鼠懸停:

Actions action = new Actions(driver);

action.clickAndHold();  //在當前位置懸停

action.clickAndHold(onElement); //滑鼠懸停在 onElement 元素的位置

滑鼠移動:

Actions action = new Actions(driver);

 action.moveToElement(toElement);  //將滑鼠移到 toElement

  action.moveToElement(toElement,xOffset,yOffset)  //將滑鼠移到元素 toElement 的 (xOffset,yOffset) 位置

action.moveByOffset(xOffset,yOffset);  //以滑鼠當前位置或者 (0,0) 為中心開始移動到(xOffset, yOffset) 座標軸

模擬鍵盤操作

對於鍵盤的模擬操作,Actions 類中有提供keyUp(theKey)、keyDown(theKey)、sendKeys(keysToSend) 等方法來實現

Actions action = new Actions(driver);

 action.sendKes(Keys.TAB);  //模擬按下並釋放TAB鍵

 action.sendKeys(Keys. CONTROL); //模擬按下並釋放CONTROL鍵

使用Robot類來操作Keys

使用Robot需要匯入兩個java包:java.awt.AWTException、java.awt.Robot

以下程式碼未使用例項程式碼


一下示例程式碼是模擬鍵盤實現複製、貼上功能


模擬鍵盤操作的另一種方式:通過sendKeys(Keys.CONTROL,“a”)方式模擬複製貼上


selenium處理頁面滾動

利用webdriver執行指令碼直接滾動到指定座標位置


滾動到指定元素位置

移動element“頂端”與當前視窗的“頂部”對齊:

((JavascriptExecutor)driver).executeScript("arguments[0].scrollIntoView(true);", element);

移動element“底端”與當前視窗的“底部”對齊:

((JavascriptExecutor)driver).executeScript("arguments[0].scrollIntoView(false);", element);


滾動到目標元素的縱座標位置

滾動到頁面底部、頂部


獲取頁面body的高、寬度

selenium處理嵌入頁面(frame技術)

         例項網站:http://data.pharmacodia.com/web/homePage/index?ns=1&ts=1&str=YWSJ


         在報錯資訊裡面看到沒有找到該元素時,首先檢查是否元素定位錯誤,再次就是網頁使用了frame嵌入技術。識別是否使用了frame技術,可以使用Firefox瀏覽器的firepath外掛(先要安裝firebug外掛)檢視,選中該元素右鍵選擇firepathà如果左上角顯示iframe標籤則表示使用了frame技術,如果顯示的時To Window則沒有使用frame技術

selenium對視窗window的處理

視窗切換

selenium中提供了一個switchTo().window(handle)的方法來處理視窗的切換。

思路:①獲取當前視窗的控制代碼(currenthandle)和當前所有視窗的控制代碼(allhandle)②把allhandle存入set集合中 ③用for迴圈去判斷當前視窗是否是目標視窗,是則切換。

示例程式碼:(為了使用方便,先封裝切換視窗的方法,使用過程呼叫即可[提供兩種封裝方法])



         完整的示例:


selenium中window.open()和click()點選連結的區別:

         使用window.open()點選當前頁面連結,瀏覽器會new一個tab,即開啟一個新的視窗

         使用click()點選當前頁面連結,瀏覽器會在當前視窗跳轉到新的頁面,而不會new一個tab,即不會開啟新的視窗


         當然,點選連結後會不會new一個tab,也是有網頁本身決定,如果有target屬性,則會new一個tab


下拉處理頁面載入


可以通過sendKeys(Keys.DOWN)方法下拉(模擬鍵盤操作)載入頁面

相關推薦

Python爬蟲:Selenium常用操作,下載youtube視訊例項

selenium常用操作: from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait

selenium常用操作

selenium文件 Selenium IDE介面說明: 1.檔案:建立、開啟和儲存測試案例和測試案例集;編輯:複製、貼上、刪除、撤銷和選擇測試案例中的所有命令;Options : 用於設定seleniunm IDE 2. 用來填寫被測網站的地址 3. 速度控制:控制案例

python selenium系列(三)常用操作類型及方法

term src 依次 and cto color 自動化 off value 一 前言開展WEB UI自動化的核心思路,無非就是找到元素,然後操作元素這兩個內容。在python selenium系列(二)元素定位方式一文中,已經介紹了如何找到元素這項技能,本文將介紹第二項

selenium - 常用等待操作

# 4. 等待操作# 強制等待from time import sleepsleep(10)# 隱性等待# 設定最長等待時間,在這個時間在只要有個時間點載入完成,則執行下一步程式碼,比sleep智慧,能夠自主判斷# 整個driver的會話週期內,設定一次即可,driver.implicitly_wait(10

Selenium常用操作

Selenium 的好處: 有些網站的JS或加密 太複雜,可破動態載入的網頁,節約時間成本,模擬遊覽器進行操作簡單 若想 找刺激 ,就先去各大網站的登陸頁面試試水。 套路就一個: 抓包分析引數,利用遊覽器的監聽事件,找到引數的大概位置,下斷點,一步一步除錯遊覽器。找到怎樣加密的。。

selenium環境搭建和頁面常用操作

一:以Chrome為例 #安裝selenium命令:pip install -U selenium #安裝Chromedriver驅動地址(驅動放在python的根目錄下):http://npm.taobao.org/mirrors/chromedriver/ 1、引入webdriver

python+selenium實現動態爬取及selenuim的常用操作

應用例項可以參考部落格中的12306自動搶票應用 https://www.cnblogs.com/mumengyun/p/10001109.html 動態網頁資料抓取 什麼是AJAX: AJAX(Asynchronouse JavaScript And XML)非同步JavaScript和XM

selenium常用操作的封裝

簡介:總結整理selenium常用操作的封裝,包括對元素操作的封裝和頁面基礎操作封裝,方便在寫自動化用例時直接呼叫。 元素操作的封裝 OperateElement.java import org.openqa.selenium.By; import org.op

使用selenium操作PhantomJS的常用操作

採集淘寶商品資料的時候,主要用到了Selenium+PhantomJS。在這個過程中對淘寶的嚴厲反爬措施佩服至極,個人也得到了很多成長。雖然歷經曲折,最終還是能正常執行自己的指令碼採集資料。 這裡總結一下Selenium+PhantomJS使用中常用的操作。 設定等待時間隱式等待,等同於ti

web自動化測試框架selenium呼叫JavaScript程式碼常用操作解析

        在做web專案時,通常需要開發一些自動化用例,自動化用例執行可以設定觸發條件,也可以定時執行,在每次程式碼發生變更的情況下,自動觸發自動化用例執行,可以及時檢測修改程式碼是否引入新的問題,提高產品的自信度。在開發web端自動化用例程式碼時,目前大多采用主流的s

python selenium 網頁物件常用操作

# 網頁物件操作:   #  點選物件  .click()    # 在物件上模擬按鍵輸入   .send_keys("xxx")  # 用於清除輸入框的內容  .clear()  #   提交表單    .submit() # 獲取該元素的文字     .text   #

Selenium的一些常用操作

如果在原頁面點選打開了新的頁面,如何對新頁面進行操作呢? 答:使用switchTo.window 使用方法:以下程式碼只是獲取到了當前視窗的控制代碼,切換到了當前視窗,這樣並不能解決問題 String currentWindow = driver.

selenium常用操作

webdrivce -開啟瀏覽器、關閉、最大化視窗 //設定chromedriver的啟動路徑 System.setProperty("webdrivce.chrome.driver",路徑); System.setProperty("

【python+selenium的web自動化】- 元素的常用操作詳解(一)

如果想從頭學起selenium,可以去看看這個系列的文章哦! https://www.cnblogs.com/miki-peng/category/1942527.html ​ **本篇主要內容:1.元素的基本操作;2.等待操作;3.iframe操作;4.alert彈出框** ​ **下篇主要內容

【python+selenium的web自動化】- 元素的常用操作詳解(二)

如果想從頭學起selenium,可以去看看這個系列的文章哦! https://www.cnblogs.com/miki-peng/category/1942527.html ​ **本篇主要內容:1.滑鼠操作;2.鍵盤操作;3.下拉框操作;4.js處理** ​ **上篇主要內容:1.元素的基本操作

byte 常用 操作

exceptio cat 移動 ror 位置 all const 長度 ear /** * 低位在前,高位在後 * * @param data * @return */ private byte[] intToBytes(int value) {

Rancher常用操作及名詞概念解析

開發 隔離 用戶登錄 項目組 做什麽 前言: 關於Rancher安裝請參考Rancher-Server部署,此文操作過程是基於以上部署環境進行演示。關於Rancher是做什麽,能完成哪些功能,有哪些優據點請自行了解。 本文主要介紹以下幾點什麽是環境如何添加環境什麽是應用棧如何添

Rancher常用操作及名詞解析

用戶登錄 項目組 做什麽 開發 隔離 前言: 關於Rancher安裝請參考Rancher-Server部署,此文操作過程是基於以上部署環境進行演示。關於Rancher是做什麽,能完成哪些功能,有哪些優據點請自行了解。 本文主要介紹以下幾點什麽是環境如何添加環境什麽是應用棧如何添

VPS常用操作(自用)

stat art ado ssserver exe 常用 gin lsp sse 1.screen 用來開啟進程,關閉ssh或命令行後扔可以繼續運行 screen screen -list screen -r xx screen -S PID -X quit 2.

redis的五大數據類型以及與 key 關鍵字相關的常用操作命令

redis數據類型 key關鍵字相關的指令 redis學習 1、redis的五大數據類型: 先來看看redis官方網上文檔 的介紹: 這裏簡單地說,就是redis不是一個普通的 key-value 存儲,而是一個數據結構服務器,支持各種不同 類型的值,這