簡體   English   中英

如何使用 c# 檢查 Selenium 中開關切換的 state

[英]How to check state of a switch toggle in Selenium using c#

我正在嘗試使用 selenium 驗證開關是“打開”還是“關閉”,但我似乎無法正確處理。 在加載網頁時將切換設置為 position,但在關閉時過濾結果在表格中等。它工作正常我只需檢查我的 selenium 測試以獲取其當前的 Z9ED39E2EA931586B6A985A6942EF573E。

  1. element.selected; 總是返回 false(關於切換位置)
  2. 元素。啟用; 總是返回真(關於切換位置)
  3. 字符串測試 = myToggle.GetAttribute("class"); 返回沒有幫助的文本“slider round”
  4. 字符串 test1 = myToggle.GetAttribute("checked"); 是 null
  5. 字符串 test2 = myToggle.GetAttribute("value"); 是 null

這是代碼:

<label class="switch">
<input type="checkbox" id="myToggle" checked />
<span class="slider round"></span>
</label>

檢查切換 position 並加載表數據的代碼:

   if (Amt == currentAmt ) {
    if ($("#myToggle").prop("checked") == true) {
        loadMyProducts('NAN', $("#total").val());
    }

我現在的測試看起來像這樣

 [FindsBy(How = How.XPath, Using = "//*[@id='divTestAcc']/div[1]/p[9]/label/span")] public IWebElement myToggle { get; set; } public Boolean CheckMyToogleIsOnorOFF() { string test = myToggle.GetAttribute("class"); Console.Write("checking "+ test); // string test1 = myToggle.GetAttribute("checked"); //string test2 = myToggle.GetProperty("checked"); //.Selected always returns false //.Enables always returns true Boolean result; result = myToggle.Enabled; bool result1 = myToggle.Selected; if (result == true) { Console.WriteLine("My toggle is enabled"); } else { Console.WriteLine("My toggle is not enabled"); } return result; }
// is it checked? 
var isChecked = driver.FindElement(By.XPath("//input[@type='checkbox']").Selected;

使用.Selected屬性應該可以實現您想要做的事情。 我添加driver.FindElement語句的原因是為了確保您找到正確的元素 - 根據您的問題描述,我不確定您找到並測試的元素是否正確。

正如另一位用戶指出的那樣,如果GetAttribute("class")返回slider round ,那么您在這里查看的是錯誤的元素。 確保首先找到input元素。

您的 XPath 在您的文件 header //*[@id='divTestAcc']/div[1]/p[9]/label/span將定位span元素,而不是input - input是帶有checked的那個,所以這就是我們需要測試的。

暫無
暫無

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

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