亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Selenium手冊(二)——WebDrive

發布時間:2020-06-14 21:45:02 來源:網絡 閱讀:1128 作者:pocp 欄目:軟件技術

【2016/8/2 9:00 更新】

  • Web Driver
    Selenium 2.0 是WebDriver API的集合。
    Selenium-WebDriver的開發目的是為了更好地支持動態網頁技術。
    WebDriver 的目標是供應一套完善的面向對象的API,為當下的web應用測試提供更好的支持。
    其他不翻,小白翻不好怕引起歧義。

  • Web Server
    需不需要下載Selenium Server,取決于你如何使用Selenium-WebDriver。

    • 不需要Server的情況
      測試用例的執行和測試所使用的瀏覽器都在同一機器上。

    • 需要Selenium Server的情況
      1:使用Selenium-Grid把測試集分配到多部機器或虛擬機器上執行。
      2:連接一臺擁有某個特定版本瀏覽器的遠程機器。
      3:不使用Java bindings(也就是Python,C#,Ruby)而使用HtmlUnit Driver來設置一個Selenium-WebDriver Project。

  • Java
    【個人筆記】
    現在我們知道Selenium2.0(即WebDriver)是一系列可以運用在web應用上的API了,那么我們就使用自己掌握的語言,通過調用對應API編寫測試程序,進行自動化測試工作。

    Java下使用Selenium,文檔只推薦了Maven,入門小白又多了一樣工具要學,真是心塞。但在招聘中我也曾看到會使用項目管理工具的要求,那么花一些時間熟悉Maven基本操作也是可以的。找了好些時間,找到了一個Maven入門視頻,鏈接及視頻存在的一些問題貼在另一篇文章《Maven入門及筆記 》里,傳送門:http://maise.blog.51cto.com/11149607/1829580
    【結束】


    創建一個Selenium 2.0 Java工程,最便捷的方式就是使用Maven。通過設置Maven的pom.xml文件,Maven將為你創建工程,下載Java bindings(即Selenium 2.0 java client庫)和所有項目依賴JAR包,然后你就可以把工程導入你常用的IDE, IntelliJ IDEA or Eclipse了。

    1. 新建一個文件夾(例 C:\Maven)。
    2. 在“Maven”下新建一個.txt文件,更名為“pom.xml”。范例如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>MySel20Proj</groupId>
        <artifactId>MySel20Proj</artifactId>
        <version>1.0</version>
        <dependencies>
            <dependency>
                <groupId>org.seleniumhq.selenium</groupId>
                <artifactId>selenium-java</artifactId>
                <version>2.53.1</version>
            </dependency>
        </dependencies>
</project>


        以上內容中的版本信息為此文檔編輯時的最新版本信息,實際操作中請以當下最新版本信息為主。

       
    【個人筆記】
     學習過Maven入門視頻(一)的人對Selenium給出的pom.xml的范例就能大致理解了。上文提供的最新版本信息,指的是“dependencies”下的version,要查詢最新version,直接在搜索引擎上輸入artifactId項的文字加version,就能找到相關網站查詢最新版本信息。

   “dependencies”下可添加多個“dependency”,保存完畢執行命令如“mvn clean install”,Maven就為你自行下載對應的JAR包。

    

        【結束】   

        3. 現在可以通過命令行窗口,CD進入工程文件夾,輸入指令:mvn clean install,Maven將自動下載Selenium和所有項目依賴JAR包到文件夾中。最后,把工程導入IDE中,就可以開始編程了。


【個人筆記】

建立一個項目實戰步驟:


1. 安裝好Maven,復制setting.xml到"C:\Users\Administrator\.m2"下。

2. cd到你想放置工程的路徑下,輸入: mvn archetype:generate -DgroupId=MySel20Proj -    

            DartifactId=MySel20Proj -Dversion=1.0。Build succes后檢查路徑下的文件是否正確建立。

3. 打開pom.xml,Dependencies下Maven已經為我們下載了junit,junit是在單元測試中使用的包。參照

            Selenium官網提供的范例增加dependency。

        注意我們使用的語言是Java:

<dependencies>
     <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>4.12</version>
          <scope>test</scope>
     </dependency>
     <dependency>
           <groupId>org.seleniumhq.selenium</groupId>
           <artifactId>selenium-java</artifactId>
           <version>2.16.1</version>
     </dependency>
</dependencies>



4.  cd到pom.xml所在的路徑下,執行mvn eclipse:clean(這一步會刪除已存在的classpath和project文件),再執行mvn eclipse:eclipse,你可以看到pom.xml所以的路徑下生成了classpath文件。然后打開eclipse,File->Import->Maven->Existing Maven project->選擇路徑,就可以看到新建的工程->Finish。


  •  通過范例介紹Selenium-WebDriver API
    工程新建完畢,你可以體會到WebDriver和其他普通的庫一樣:它十分完善,通常你不需要在使用它前再做其他補充步驟或安裝,這點比Selenium-RC可方便多了。


        注意:使用ChromeDriver,Opera Driver,Android Driver或iOS Driver需要再增加相應的操作。


        現在你已經可以開始編程了,先用這個范例練練手吧。此范例通過谷歌搜索“Cheese”并打印頁面的標題。


 

package MySel20Proj;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.ExpectedCondition;
import org.openqa.selenium.support.ui.WebDriverWait;
public class Selenium2Example
{
       public static void main(String[] args)
      {
             //【個人筆記】如果程序報錯找不到路徑:
             //System.setProperty( "WebDriver.Firefox.bin", "找到Firefox.exe的安裝路徑,復制路徑");
             //Syste.setProperty("WebDriver.chromedriver.exe", "同上");
             
             // 創建一個 Firefox driver的實例
             // 注意,接下來的代碼依賴于接口(即WebDriver)
             // 而不是實現(即FirefoxDriver)
             // 注:FirefoxDriver implements WebDriver
            WebDriver driver = new FirefoxDriver();
            
             // 訪問谷歌【打不開谷歌就換百度】
             driver .get("http://www.google.com" );
             // 你也可以用以下語句實現訪問動作
             // driver.navigate().to("
              
             // 通過name來定位搜索框元素【百度 By.name("wd")】
            WebElement element = driver .findElement(By.name ("q" ));
            
             // 搜索cheese!
             element .sendKeys("Cheese!" );
             
             // 提交. WebDriver會為我們執行搜索動作
             element .submit();
             
             // 確認下頁面title
            System. out .println("Page title is: " + driver.getTitle());
            
             // 谷歌【百度】的搜索是使用JavaScript進行動態呈現
             // 等待頁面的加載,倒計時十秒
            ( new WebDriverWait(driver , 10)).until(
                         new ExpectedCondition<Boolean>()
                        {
                               public Boolean apply(WebDriver d )
                              {
                                     return d .getTitle().toLowerCase().startsWith( "cheese!");
                              }
                        });
                        
             // 打印輸出""
            System. out .println("Page title is: " + driver.getTitle());
            
             //關閉瀏覽器
             driver .quit();
      }
}


        【個人筆記】

         我選擇ChromeDriver實現段代碼, 運行時,eclipse console窗口總是出現一行文字“Only local connections  are allowed”,這句話是什么意思?查一下API文檔,ChromeDriver的定義:

          1. A WebDriver implementation that controls a Chrome browser running on the local machine.

          2. The control server which each instance communicates with will live and die with the instance.

          也就是說,ChromeDriver在本機生成一個server,server通過本機的一個開放端口進行監聽,收集上層的請求,操控本機的chrome瀏覽器。那當然就是“只能允許本地連接”了。根據stackoverflow最高票的回答,這句話只是一句提示性的信息而已。

http://stackoverflow.com/questions/25080500/when-run-webdriver-with-chrome-browser-getting-message-only-local-connection

          


  • Selenium-WebDriver API 命令和操作

    • 讀取網頁
      driver.get("http://www.google.com");
      WebDriver不一定會等待頁面的加載,這其中有幾個因素的影響,包括何種操作系統搭配何種瀏覽器。在某些情況下,WebDriver可能會在頁面加載之前,甚至加載一開始或加載中,返回control(【個人筆記】目前理解等同于Java的Event)。為了保證健壯性(【個人筆記】什么的健壯性?),你要使用顯性/隱性等待來等待element(s)的出現。

    • 定位UI元素
      定位元素可通過WebDriver的實例或通過WebElement來實現。每種綁定語言(Selenium支持的語言)都有“Find Element”和“Find Elements”方法。前一個方法返回符合查詢的WebElement對象,如果元素不存在則拋出異常。后一種方法返回一個含多個WebElement的list,如果查詢無結果則返回一個空表。
      “Find”方法需要搭配“By”來使用。

      未完待續...











向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

灵寿县| 安福县| 翁牛特旗| 荔浦县| 赤壁市| 剑阁县| 宣恩县| 宁都县| 石景山区| 萨嘎县| 东方市| 江西省| 航空| 四平市| 蒙阴县| 灵武市| 昔阳县| 沙洋县| 余干县| 衡阳市| 郴州市| 砀山县| 瑞金市| 启东市| 广宁县| 巨野县| 盱眙县| 西城区| 水城县| 措美县| 平塘县| 嘉鱼县| 乐清市| 泸水县| 蒙阴县| 措勤县| 金溪县| 肃宁县| 上蔡县| 西和县| 巴彦县|