[英]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.