簡體   English   中英

Selenium Webdriver(經過測試的ChromeDriver)無法通過包含變音符號的文本找到選項?

[英]Selenium webdriver (tested ChromeDriver) cant find option by text containing umlauts?

我有一個下拉列表,這是一個結構: 在此處輸入圖片說明

現在,我想使用Selenium Webdriver通過文本選擇最后一個選項(我不能依靠該選項實際上是最后一個)。

試試這個:

var text = "   undersida";

var option = new SelectElement(browser.FindElement(By
  .CssSelector("#Menu_ParentMenuID"))).SelectByText(text);

給我一個NoSuchElementException。

為什么?

這是我為text嘗試的值列表:

 "   undersida" " undersida" "undersida" 

我不知道這是否仍然是一個問題,但我想做出貢獻。

我認為問題在於“不間斷空間”的性質(或您的理解)。
它不是常規的空格,例如“”或字符串“  
您真正想要的是它的C#Unicode表示形式

因此要測試的字符串應類似於:

"\u00A0\u00A0\u00A0undersida"

在這里看看: http : //www.fileformat.info/info/unicode/char/a0/index.htm

那這個呢?

new Select(browser.findElement(By.css("#Menu_ParentMenuID")))
    .selectByVisibleText("   undersida");

如果沒有被僅按可見文本進行選擇所束縛,則還有另一種選擇相關元素的方法。

以下是該代碼的Java代碼:

        String str = "undersida";

        Select sel = new Select(browser.findElement(By.id("Menu_ParentMenuID")));
        List<WebElement> list_options = sel.getOptions();
        for(WebElement ele: list_options){
            if(ele.getText().contains(str)){
                String value = ele.getAttribute("value");
                sel.selectByValue(value);
                break;
            }
        }

這將從select下拉列表中獲得所有選項。 然后搜索其innerHTML / text包含所需選項的選項。 然后,它獲取該選項的“值”屬性。 之后,它將使用與該文本相關的值從下拉列表中選擇相關項目。

嘗試使用以下代碼:-

var option = new SelectElement(browser.FindElement(By.CssSelector("#Menu_ParentMenuID"))).SelectBySubText("undersida");

暫無
暫無

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

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