C# 单击仅没有 ID 的 HtmlElement Class
C# Click on HtmlElement With no ID only Class
我没有使用 selenium 或其他任何东西,我只是想在 windows 表单应用程序的网络浏览器上使用它。
我有一个 windows 表单应用程序,我想单击带有代码的按钮,但没有 ID。
我尝试使用在本网站论坛上找到的很多不同的东西,但是 none 这个有用。
您是否尝试过使用 WebBrowser.GetElementByTagName("div") 然后根据属性 type=submit 检查每个元素?
您的代码应该类似于
HtmlElement submit = FindSubmitElement(webBrowser1.Document);
submit?.InvokeMember("submit");
public HtmlElement FindSubmitElement(HtmlDocument document)
{
HtmlElementCollection elems = document.GetElementsByTagName("div"); // since your tag is div
// this will return collection, even in case there is just one div, find the first one, having an attribute 'type' with value 'submit'
foreach (HtmlElement elem in elems)
{
string type = elem.GetAttribute("type");
if (!string.IsNullOrEmpty(type) && type == "submit")
{
return elem; // if div tag with attribute type is found exit and return that html element
}
}
return null; // if no div tags found with an attribute 'type' return null
}
在 MSDN docs 上查看有关 GetElementsByTagName 方法的更多信息。代码取自那里并根据您的需要进行调整。
我没有使用 selenium 或其他任何东西,我只是想在 windows 表单应用程序的网络浏览器上使用它。 我有一个 windows 表单应用程序,我想单击带有代码的按钮,但没有 ID。
我尝试使用在本网站论坛上找到的很多不同的东西,但是 none 这个有用。
您是否尝试过使用 WebBrowser.GetElementByTagName("div") 然后根据属性 type=submit 检查每个元素? 您的代码应该类似于
HtmlElement submit = FindSubmitElement(webBrowser1.Document);
submit?.InvokeMember("submit");
public HtmlElement FindSubmitElement(HtmlDocument document)
{
HtmlElementCollection elems = document.GetElementsByTagName("div"); // since your tag is div
// this will return collection, even in case there is just one div, find the first one, having an attribute 'type' with value 'submit'
foreach (HtmlElement elem in elems)
{
string type = elem.GetAttribute("type");
if (!string.IsNullOrEmpty(type) && type == "submit")
{
return elem; // if div tag with attribute type is found exit and return that html element
}
}
return null; // if no div tags found with an attribute 'type' return null
}
在 MSDN docs 上查看有关 GetElementsByTagName 方法的更多信息。代码取自那里并根据您的需要进行调整。