2013-03-06 157 views
0

我正在使用舊版本的自動化腳本,該腳本登錄到頁面並運行測試。Java構造函數參數Selenium與WebDriverBackedSelenium

我們希望將經典的硒構造函數更改爲WebDriverBackedSelenium構造函數,以便執行更多的涉及測試。

我們原來的構造函數的調用是:

selenium = new DefaultSelenium("localhost", 4444, "*firefox", "https://asdffdsa.com/"); 

如何設置使用相同參數的構造函數WebDriverBackedSelenium?該API表明,我們需要設置的構造爲:

seWebDriver = new WebDriverBackedSelenium(driver, "https://asdffdsa.com"); 

似乎有不爲大約在硒服務器運行,哪個端口的任何指示,什麼瀏覽器。

目前使用下面的代碼:

driver = new FirefoxDriver(); 
    seWebDriver = new WebDriverBackedSelenium(driver, "https://www.asdfdfdfsfs.com"); 

    seWebDriver.open("/"); 

剛纔注意到,我得到了以下錯誤:

造成的:org.openqa.selenium.firefox.NotConnectedException:無法連接到45000毫秒後,端口7055上的主機127.0.0.1。 Firefox的控制檯輸出: * LOG addons.manager:應用程序已經升級 LOG addons.xpi:啓動 LOG addons.xpi:跳繩不可用安裝位置的應用系統共享 LOG addons.xpi:忽略文件項的名稱不是有效的附加ID:在/ var /文件夾/ PF/hvzyf38x59vfbgf8zpvw5v800000gn/T/anonymous2501560210712840923webdriver-資料/擴展/ webdriver的-分期 LOG addons.xpi:checkForChanges LOG addons.xpi -utils:打開數據庫 LOG addons.xpi-utils的:創建數據庫模式 LOG addons.xpi:新增加的[email protected]安裝在應用程序矚目 阻止列表:: _ loadBlocklistFromFile:黑名單禁止 LOG插件的.xpi:新增加的{972ce4c6-7e08-4474-a285-3208198ce6fd}安裝應用程序,全球 LOG addons.xpi:更新數據庫更改安裝的插件 LOG addons.xpi-utils的:更新附加狀態 LOG addons.xpi- utils的:編寫插件列表 LOG addons.manager:關機 LOG addons.xpi:關機 LOG addons.xpi-utils的:關機 LOG addons.xpi-utils的:數據庫關閉 LOG addons.xpi:啓動 LOG addons.xpi:跳過不可用的安裝位置app-system-share LOG插件。XPI:忽略文件項的名稱不是有效的附加ID:在/ var /文件夾/ PF/hvzyf38x59vfbgf8zpvw5v800000gn/T/anonymous2501560210712840923webdriver-資料/擴展/ webdriver的-分期 LOG addons.xpi:checkForChanges * LOG插件.xpi:未找到更改

+0

老兄,看看我下面的答案。而不是使用driver = new FirefoxDriver()使用驅動程序=新的RemoteWebDriver(集線器,功能),其中hub類似於http:// localhost:4444/wd/hub。我不明白你爲什麼在我已經提供答案時編輯這個問題。另外,硒文檔非常好,所有這些東西都在那裏回答。 – KyleM 2013-03-07 21:37:51

+0

上面列出的錯誤是由於版本化incomaptibilities或某事。請參閱http://stackoverflow.com/questions/10013898/unable-to-connect-to-host-127-0-0-1-on-port-7055瞭解更多信息。 – 2013-03-08 18:54:27

回答

1

以下是使用Webdriver備份硒的示例。

使用webdriverbacked Selenium時不需要提及端口號。

在下面的程序中,對象Selenium用於利用Selenium RC(您的舊自動化腳本構造函數)的屬性。

對象driver是爲了利用Webdriver(Selenium2.0)的功能。

public class BackedWebdriver { 

    public static WebDriver driver; 
    public static String baseUrl; 
    public static Selenium selenium; 

    public static void main(String[] args) { 
     driver = new FirefoxDriver(); //Here we are mentioning that we will use Firefox browser 
     baseUrl = "http://www.google.co.in/"; 
     driver.get(baseUrl); 
     selenium = new WebDriverBackedSelenium(driver, baseUrl); 
     selenium.windowMaximize(); 
     driver.findElement(By.id("gbqfq")).clear(); 
     driver.findElement(By.id("gbqfq")).sendKeys("selenium"); 
     selenium.click("g"); 
     driver.findElement(By.id("gbqfb")).click(); 


    } 
+0

我認爲我們需要WebDriver在這個自動化中的功能,但是當我設置它並將它作爲UnitTest運行時,它試圖加載localhost,而不是我在構造函數中給它的網站。 – 2013-03-06 21:25:48

+0

你使用的是driver.get(url)還是selenium.open(url)? 如果您可以分享代碼,這將有所幫助。 – Hemanth 2013-03-07 05:06:01

+0

selenium.open(url)代碼是一團糟我試着清理一下它,然後發佈相關的部分。 – 2013-03-07 19:06:21

0
DesiredCapabilities ffLinux = DesiredCapabilities.firefox(); 
ffLinux.setBrowserName("firefox"); 
ffLinux.setPlatform(Platform.LINUX); 
String hubLocation = http://yourmachine.com:4444/wd/hub; 
WebDriver driver = new RemoteWebDriver(hubLocation, ffLinux); 
driver.get(yourWebApplicationURLThatsBeingTested); 

在你上面的例子與WebDriverBackedSelenium,你傳遞的第一個參數是「司機」。看看我如何設置我的WebDriver上面:它指定了樞紐位置。