[英]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']
如果驅動程序仍然無法單擊,則應考慮以下事項:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.