2017-09-20 66 views
0

我想創建一個簡單的自動化任務。現在我想登錄到網頁。當我在Visual Studio 2017中運行測試時,這一切都可以正常工作。但是,這需要在Windows系統中以常規間隔執行。當我運行它掛起後,顯示可執行文件:在端口Selenium/Chromedriver自動化掛起時,作爲可執行文件運行

開始ChromeDriver 2.32.498550(9dec58e66c31bcc53a9ce3c7226f0c1c5810906a)

只有本地連接被允許。

我明白這僅僅是信息不是那麼每最錯誤與此相關的問題,如職位 - When running WebDriver with Chrome browser, getting message, "Only local connections are allowed" even though browser launches properly (注:我的瀏覽器不啓動)

如何運行測試代碼可執行文件? 作爲可執行文件運行時,是否必須編寫額外的代碼來調用測試?

Nuget Version Info

namespace RevuSeleniumAutomation 
{ 
using Microsoft.VisualStudio.TestTools.UnitTesting; 
using OpenQA.Selenium; 
using OpenQA.Selenium.Chrome; 
using OpenQA.Selenium.Firefox; 
using OpenQA.Selenium.IE; 
using OpenQA.Selenium.Remote; 
using OpenQA.Selenium.PhantomJS; 
using System; 

[TestClass] 
public class RevuAutomater 
{ 
    private string baseURL = "http://example.com/"; 
    private RemoteWebDriver driver; 
    private string browser; 
    public TestContext TestContext { get; set; } 

    [TestMethod] 
    [TestCategory("Selenium")] 
    [Priority(1)] 
    [Owner("Chrome")] 

    public void AutomateSite() 
    { 
     driver = new ChromeDriver(); 
     driver.Manage().Window.Maximize(); 
     driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(30)); 
     driver.Navigate().GoToUrl(this.baseURL); 
     driver.FindElementById("UserName").SendKeys("user"); 
     driver.FindElementById("Password").SendKeys("12345"); 
    } 

    [TestCleanup()] 
    public void MyTestCleanup() 
    { 
     driver.Quit(); 
    } 

    [TestInitialize()] 
    public void MyTestInitialize() 
    { 
    } 
} 

}

The cmd window message after launching exe

謝謝您的時間。

1)不宜與硒服務器或網格

+0

您是否在Visual Studio中運行並在同一臺機器上作爲EXE運行?如果是這樣,它應該在Visual Studio中運行,因爲它們都使用相同的chrome和chromedriver.exe。 – yong

+0

這個問題是鉻驅動程序掛起&你需要退出所有的chromedriver進程再次調用exe之前。示例cmd命令可以用作代碼的第一部分:需要在cmd上運行的「taskkill/F/IM chromedriver.exe/T」 – thebadguy

回答

1

要爲EXE我想有兩個選項運行。您需要將您的代碼打包到chromedriver.exe到EXE
。你的代碼需要在運行時計算chromedriver.exe的路徑,因爲你不知道用戶會把EXE放在哪個文件夾中
。指定由ChromeOptions chromedriver.exe告訴硒在哪裏可以找到它,當創建驅動程序實例

短缺的這樣:certian版本的支持有限鉻verions,不是所有的鉻verions的chromedriver.exe,你需要告訴鉻EXE支持的用戶。

2)使用硒服務器/網格
。你的代碼需要從配置文件接受硒服務器/網格地址,用戶可以修改它
。使用以上地址創建RemoteWebDriver實例,而不是ChromeDriver,代碼爲
。無需打包chromedriver.exe你的代碼

短缺的這樣:硒服務器/柵格無需準備好之前執行EXE, 但你的代碼無需考慮鉻和chromedriver.exe的兼容性,因爲他們在安裝硒服務器/網格時已經考慮過了。

+0

對於選項1,可以使用config文件作爲選項2來設置路徑chromedriver.exe由用戶自己。 – yong

相關問題