我試圖從下拉列表中選擇一個選項,只匹配一部分可見文本,因爲整個文本不會總是是相同的。任何人都可以幫我解決這個問題嗎?如何通過使用硒webdriver和java匹配文本模式從下拉列表中選擇一個選項
回答
你可以使用下面的命令。讓我知道它是否工作。
driver.findElement(By.id("id of the dropdown")).sendkeys("part of visible text");
driver.findElement(By.id("id of the dropdown")).sendKeys(Keys.ENTER);
我沒有測試過這個,但這裏是你如何在C#中完成它,你應該能夠很容易地轉換成Java代碼。兩種方法我能想到的:
1)
string selBoxID = "id of select box";
string partialText = "option text to match";
driver.FindElement(By.XPath("//select[@id='" + selBoxID + "']/option[contains(text(), '" + partialText + "')]")).Click();
OR
2)
SelectElement elSel = new SelectElement(driver.FindElement(By.Id("id of select box")));
IList<IWebElement> opts = elSel.Options;
foreach (IWebElement elOpt in opts)
{
if(elOpt.Text.Contains("partial text to look for"){
elOpt.Click();
return true;
}
}
return false;
+1,僅供參考,Java相當於「Select」類:https://code.google.com/p/selenium/source/browse/java/client/src/org/openqa/selenium/support/ ui/Select.java – Arran 2013-05-09 09:13:34
感謝您的幫助,它對我有用(選項1)。 – user2365105 2013-05-09 09:20:24
不客氣! – ragamufin 2013-05-09 11:42:44
也許這是否行得通呢?
new Select(driver.findElement(By.id("MyIdOrOtherSelector"))).selectByVisibleText("Something");
雖然我不確定是否允許部分文本。 還有
selectByValue(value)
selectByIndex(index)
如果他們使用任何
下面是該
WebElement dropdown = driverObj.findElement(By.id(id));
dropdown.click();
List<WebElement> options = dropdown.findElements(By.tagName("option"));
for(WebElement option : options){
String optTxt = option.getText();
if(optTxt.contains(partialText)){
option.click();
break;
}
}
}
C#與LINQ一個java代碼
var menuOptions = new SelectElement(Driver.FindElement({LocatorForMenu})).Options;
var requiredOption = menuOptions.FirstOrDefault(element => element.Text.Contains(partialTextToMatch));
if (requiredOption == null)
throw new Exception("Wasn't able to select menu item: " + partialTextToMatch);
requiredOption.Click();
- 1. 硒webdriver從下拉列表中選擇
- 2. 如何使用硒webdriver c彈出下拉列表中選擇一個選項#
- 3. 如何使用Selenium WebDriver與Java從下拉列表中選擇一個選項?
- 4. WebDriver + Groovy:如何在下拉列表中選擇一個選項?
- 5. selenium2:硒WebDriver:從圖像下拉列表框中選擇一個選項框
- 6. 使用硒搜索並從下拉列表中選擇值Webdriver
- 7. 通過硒選擇一個JavaScript下拉?
- 8. Selenium - 使用通配符從下拉列表中選擇一個選項?
- 9. 如何選擇jQuery無訂單下拉列表硒硒webdriver
- 10. 如何選擇下拉選項,並應在硒webdriver java代碼下拉列表中點擊下面的值
- 11. jQuery - 如何通過文本選擇下拉列表項目?
- 12. 如何使用硒webdriver從下拉框中選擇
- 13. 使用classname的硒webdriver下拉選擇
- 14. 硒通過下拉選項中的選項迭代選擇
- 15. 如何在硒webdriver中使用下拉選項獲取下拉選項值
- 16. 通過一列中的匹配模式從文本文件中選擇行
- 17. 獲取下拉列表中的所有選項,並使用單個選項使用硒webdriver和java
- 18. 如何選擇「Span類型下拉列表」中硒值的webdriver
- 19. 如何從jsp的下拉列表中選擇一個選項?
- 20. 如何使用硒webdriver從下拉列表中選定的選項將文本轉換爲字符串變量?
- 21. 如何使用Selenium WebDriver從Java下拉框中選擇一個項目?
- 22. 無法選擇下拉選項(硒/ java)
- 23. 如何從選擇下拉列表中選擇和選項使用JS
- 24. 如何使用javascript在另一個下拉列表中選擇下拉選項
- 25. 如何從硒webdriver中的下拉菜單中選擇一個選項。該元素不是'選擇'元素
- 26. 如何使用jquery從下拉列表中選擇選項?
- 27. Javascript從選擇下拉列表中選擇選項,使用href
- 28. 如何使用Selenium WebDriver和java從CSS自定義下拉列表中選擇一個項目?
- 29. SelectField迫使我從下拉列表中選擇一個選項
- 30. 如何使用Haskell和webdriver從下拉列表中快速選擇一個選項?
非常感謝你對你的快速響應。這個問題是,我試圖在這裏找到的文本模式應該是起始文本。另外它不會從元素中釋放焦點。 – user2365105 2013-05-09 09:04:49