簡體   English   中英

我可以將 map 2 個元素(SelectElement 和 WebElement)合並為一個元素,在 Selenium 中有多個 xpath 嗎? C#

[英]Can I map 2 elements (SelectElement and WebElement) into one element with multiple xpath in Selenium? C#

在 web 頁面上執行不同的操作,我有 2 種情況:第一種情況:該項目是下拉菜單(選擇類型)第二種情況:該項目成為輸入(只讀)(輸入類型)

我想為這兩種情況實現一個保存方法。 對於某些元素(選擇元素、輸入(Web 元素)),XPath 是相同的,而對於其他元素,它們是不同的(盡管在頁面上它們似乎是同一個元素)。 如何將這些元素映射到單個 2 XPath 元素中? 當我想保存項目時出現問題,特別是當我使用 GetDropdownOptionSelectedText() 方法時,該元素不是 Select 一:Unexpected Tag Name Exception: Element should have been select but was input

要在下拉列表和文本框之間進行處理,請使用以下示例:

public void PerformAction(IWebElement element,String inputValue)
{
    string tagname = element.TagName;
    if(tagname == input) //Then it is a text box
    {
       //Perform textbox action
    }
    else
    {
       //Perform all dropdown related action since it is a dropdown
     }

對於下拉和輸入 xpath 將不同/相同(可用於所有對象)的情況,您可以提出以下方法:

ReadOnlyCollection<IWebElement> elements = driver.FindElements(By.Xpath("Dropdown xpath/Textbox xpath"));
if(elements.Count != 0) 
{
   //Calling above defined method here
    PerformAction(elements[0],"input value");
}

將上述代碼保留在單個方法中,並根據保存前的操作多次調用。 它應該處理你所有的情況。

暫無
暫無

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

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