簡體   English   中英

如何使用 Selenium 和 C# 單擊登錄按鈕

[英]How to click on the SIGN IN button using Selenium and C#

我正在嘗試創建這個簡單的測試,您可以前往 URL,輸入您的登錄憑據,然后單擊按鈕進行登錄。除了單擊按鈕之外,它正在執行所有操作。 我試圖通過調用 ClassName 來做到這一點。 誰能看看我的測試,看看我做錯了什么?

public void test_search()
{
    var driver2 = new ChromeDriver(@"C:\Users\MyName\Desktop\NUnitTestProject1\NUnitTestProject1\bin\Debug\netcoreapp2.1");
    driver2.Navigate().GoToUrl("https://portal.crushdata.com/");
    driver2.FindElement(By.Name("Email")).SendKeys("email@email.com");
    driver2.FindElement(By.Name("Password")).SendKeys("Password");
    driver2.FindElement(By.ClassName("btn bg-teal btn-block btn-lg waves-effect")).Click();
}

這是我的按鈕的類名。

在此處輸入圖像描述

使用 CSS 選擇器,如下所示:

By.ClassName("btn.bg-teal.btn-block.btn-lg.waves-effect")

每個點代表一個 class。

有關更多信息,請參閱頁面,以下是該頁面的示例:

.name1.name2

選擇在其 class 屬性中設置了 name1 和 name2 的所有元素

要單擊SIGN IN按鈕,您必須為所需的ElementToBeClickable()誘導WebDriverWait並且您可以使用以下任一定位器策略

  • CssSelector

     new WebDriverWait(driver, TimeSpan.FromSeconds(20)).Until(ExpectedConditions.ElementToBeClickable(By.CssSelector("button.btn.bg-teal.btn-block.btn-lg.waves-effect"))).Click();
  • XPath

     new WebDriverWait(driver, TimeSpan.FromSeconds(20)).Until(ExpectedConditions.ElementToBeClickable(By.XPath("//button[text()='SIGN IN']"))).Click();

嘗試使用按鈕 xpath。 打開開發工具。 Right click on the button you want to be clicked > Select Inspect >Then right click the html in the dev tools window and Copy Xpath from the Copy option.

然后在您的代碼FindElement替換為FindElementByXPath

driver2.FindElementByXPath("//*xpath/goes/here")).Click();

鑒於您共享的 html 塊,以下 XPath 就足夠了。

//div[contains(@class = "text-center")]//button[contains(@class, 'btn bg-teal btn-block btn-lg waves-effect') and @type = 'submit']

如果驅動程序仍然無法單擊,則應考慮以下事項:

  1. XPath 是獨一無二的嗎? 將 xpath 粘貼到 chrome 的 devtools 搜索框中的檢查元素選項卡中,並確保提供的 xpath 以您想要的元素為目標。 如果不是這種情況,那么您應該使 xpath 更加獨特。
  2. iframe 中的元素是什么? 如果該元素在 iframe 中,則默認情況下驅動程序將無法找到它。 在這種情況下,您需要首先切換到 iframe,然后嘗試定位該元素並與之交互。
  3. 元素是否可點擊、可見和啟用? 要檢查這些屬性,首先找到元素並存儲在單獨的變量中,然后檢查所述屬性是否為真。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM