我一直使用用C#編寫的Selenium Webdriver幾個月,現在我得到了相當的能力。這是我的工作場景,我正在測試基於Web的瀏覽器產品的用戶界面。問題是我需要立即測試許多用戶並監視服務器內存等。我過去曾經使用過jMeter進行服務器負載測試,並且我非常希望使用硒來儘可能地爲儘可能多的用戶做類似的事情。C# - Selenium Webdriver - 無頭瀏覽器 - 單元測試 - 基礎知識
根據我的理解,我可能可以使用無頭瀏覽器與Selenium結合使用(對於任何不知道的情況,加載多個瀏覽器往往會讓您的機器內存吃光,並限制您可以在6/7瀏覽器下運行同時)
所以我想,我將使用一個無頭瀏覽器,看看我能一次走多少。我的研究讓我相信我可以使用SimpleBrowser和硒一起實現這一點。
很難找到這兩個組合的例子。所以我的第一個問題很多,如果這是一個無頭瀏覽器,頁面元素是否真的存在,或者它只是在客戶端和服務器之間發送的請求?
例如,如果我使用硒找到一個頁面上的元素我會寫
IWebElement用戶名= driver.FindElement(By.XPath( 「//輸入[@ ID = 'MainContent_txtUsername']」) ); username.SendKeys(userUserName);
我已經寫了相同的單元測試,並說它已通過。但是,當我發送密碼並「單擊」登錄按鈕時,我無法獲得下一個TestMethod通過。即登錄後我希望找到一個值爲「更改公司密碼」的按鈕。這個單元測試沒有通過,所以它導致我相信它沒有執行登錄。
所以,我的問題是,在無頭瀏覽器中是否存在這些元素或者它們是如何工作的?如果是這樣,我該如何「點擊」登錄按鈕?謝謝你們
這裏是我的代碼:
[TestMethod]
public void AddPhoneToCartAndVerifyInCart()
{
//This is the placeholder to write actual code.
Assert.AreEqual(" SPC Connect ", driver.Title);
}
[TestMethod]
public void LogIn()
{
Assert.IsTrue((driver.FindElement(By.XPath("//input[@class='btn btn-info']")).Text).Contains("Login"));
IWebElement username = driver.FindElement(By.XPath("//input[@id='MainContent_txtUsername']"));
username.SendKeys(userAccount);
IWebElement password = driver.FindElement(By.XPath("//input[@id='MainContent_txtPassword']"));
password.SendKeys(userPassword);
IWebElement clickSubmit = driver.FindElement(By.XPath("//input[@class='btn btn-info']"));
clickSubmit.Click();
}
[TestMethod]
public void LogInSuccess()
{
Assert.IsTrue((driver.FindElement(By.XPath("//input[@id='MainContent_btnChangeCompanyPassword']")).Text).Contains("Change Company Password"));
}