我使用 gecko 浏览器,我需要选择一个特定的列表框或组合框,但同一页面有多个列表框和组合框。我尝试了以下方法,但它适用于所有人。而且没有 ID 标签,只有名称标签。
GeckoElementCollection ListeBoxKomboBox = Tarayıcı.Document.GetElementsByTagName("option");
foreach (GeckoHtmlElement Element in ListeBoxKomboBox)
{
if (Element.GetAttribute("value") == "1")
{
Element.SetAttribute("selected", "selected");
}
if (Element.GetAttribute("value") == "2")
{
Element.SetAttribute("selected", "selected");
}
}
我不希望你在其他箱子里挑选具有相同值(value)的元素。是this like gecko 可用的解决方案?
最佳答案
我注意到有一个标签标签('Turu' 或其他东西:))。
因此,您可以通过以下方式确定哪个选择框是正确的:
- 选择第一个子元素为“Turu”的 LI 元素
- 然后选择该 LI 元素内的“组合框”
另请注意,这段代码并不是真的正确:
GeckoElementCollection ListeBoxKomboBox = Tarayıcı.Document.GetElementsByTagName("option");
您将获得页面上所有组合框中所有选项的集合。因此,组合框实际上是 option
元素(select
元素)的父元素。
此外,选项标签是 GeckoOptionElements(可以安全地转换), 所以你可以这样做:
var optionElements= selectBox.GetElementsByTagName("option");
foreach (GeckoOptionElement optionElement in optionElements)
{
if (optionElement.Value == "Foo")
{
optionElement.Selected = true;
}
}
最后 - 是的,您的链接中的解决方案在 Gecko 中是可行的。
关于C# Gecko 选择特定的列表框或组合框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42173941/