硒-如何从选项列表中选择选项?(只有部分文本是已知的?)
本文关键字:选项 文本 列表 选择 | 更新日期: 2023-09-27 18:19:53
选择部分匹配字符串的选项项(如果不可能,我需要将列出的选项项的全名输入程序中,以便可以选择)
Example if you want to select optionTQW 4493, you can just select with TQW?
<select id="_myselector" name="select-list">
<option value='1'>OptionZ 2345</option>
<option value='2'>optionTQW 4493</option>
</select>
您可以使用XPath选择器://select[@id='_myselector']/option[contains(.,'TQW')]
对于更具体的答案,了解您是将selenium脚本语言与selenium IDE一起使用,还是使用某种语言包装器(Java、python、ruby等)
<tr>
<td>select</td>
<td>id=_myselector</td>
<td>label=glob:option* 4493</td>
</tr>
使用xpath选择器"//select[@id='_myselector']/option[contains(text(),'TQW')]"
这是在ruby selenium webdriver-中
@driver.find_element(:id, "_myselector").find_element(:css,"option[value='1']").click
您可以在Selenium.Support.UI Namspace 中使用内置的SelectElement
类
下面是我创建的一个扩展方法。
public static void SelectOptionFromDropdown(this IWebDriver driver,IWebElement dropdown, SelectBy selectBy, string item)
{
switch (selectBy)
{
case SelectBy.Index:
int index;
if (Int32.TryParse(item, out index))
{
new SelectElement(dropdown).SelectByIndex(index);
}
else
{
ExceptionHandler.LogException("Unable to Convert String To Int", "WebdriverExtension", "SelectOptionFromDropdown");
throw new Exception();
}
break;
case SelectBy.Text:
new SelectElement(dropdown).SelectByText(item);
break;
case SelectBy.Value:
new SelectElement(dropdown).SelectByValue(item);
break;
}
}
我刚刚重读了你的帖子,你想在部分字符串匹配上进行选择,我不知道如何做到这一点,我更喜欢使用更严格的方法。所以我倾向于使用Index或Value。
但希望这能帮你指明正确的方向。