【发布时间】:2012-03-10 03:17:49
【问题描述】:
我在 C# 中使用 selenium 编写了以下代码:
private void SelectElementFromList(string label)
{
var xpathcount = selenium.GetXpathCount("//select");
for (int i = 1; i <= xpathcount; ++i)
{
string[] options;
try
{
options = selenium.GetSelectOptions("//select["+i+"]");
}
catch
{
continue;
}
foreach (string option in options)
{
if (option == label)
{
selenium.Select("//select[" + i + "]", "label=" + label);
return;
}
}
}
}
问题出在这条线:
options = selenium.GetSelectOptions("//select["+i+"]");
当 i == 1 时,此方法有效,但当 i > 1 时,该方法返回 null(“错误:元素 //select[2] 未找到”)。它仅在 i == 1 时有效。
我也在JS中试过这段代码:
var element = document.evaluate("//select[1]/option[1]/@value", document, null, XPathResult.ANY_TYPE, null);
alert(element.iterateNext());
var element = document.evaluate("//select[2]/option[1]/@value", document, null, XPathResult.ANY_TYPE, null);
alert(element.iterateNext());
在屏幕上打印“[object Attr]”然后是“null”。
我做错了什么? 我的目标是遍历页面上的所有“选择”元素,找到具有指定标签的元素并选择它。
【问题讨论】:
标签: c# javascript select xpath selenium