使用c#设置html选择选项
本文关键字:选择 选项 html 设置 使用 | 更新日期: 2023-09-27 18:00:45
好吧,这看起来很容易,但我找不到如何做到。我使用了htmlagility
包来解析网页,效果很好。现在,问题是以下内容。
<td width="45%" class="TextBold" nowrap>
<select name="ctl00$BodyContent$ddlChooseView" onchange="if (this.selectedIndex > 0
{pageTracker._trackEvent('webpage tracker','complete report',this.options
[this.selectedIndex].text);}
ShowProcessing(this);setTimeout('__doPostBack(''ctl00$BodyContent$ddlChooseView'','''')',
0)" id="ctl00_BodyContent_ddlChooseView" class="TextBold">
<option selected="selected" value=""> -- Select a view -- </option>
<option value="H">Option1</option>
<option value="R">Option2</option>
<option value="N">Option3</option>
<option value="NA">Option4</option>
<option value="RN">Option5</option>
<option value="QP">Option6</option>
</select>
</td>
如果格式不正确,我深表歉意。我想在html
选择对象中选择一个选项。触发页面上的新显示,然后解析该"新"网页。htmlagilitypack
能做到这一点吗?如果没有,我该如何选择其中一个选项?
我想你对HtmlAgilityPack
的功能有点困惑…
HtmlAgilityPack
-只是一个练习者。
从browser's point of view
,选择其中一个选项将导致浏览器向页面发送POST
类型的请求。
你现在可以做的是,用WebClient
或HttpWebRequest
模拟POST
请求,然后你会得到你的new web page
——你可以使用HtmlAgilityPack
在新的网页上工作。
此代码可能对您有用。它包含基本的详细信息。
<code>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
//Need to add these two libarary
//For that u need to have WebDriver.dll and WebDriver.Support.dll
using OpenQA.Selenium;
using OpenQA.Selenium.Support.UI;
namespace Test
{
class Program
{
static void Main(string[] args)
{
//Intializing the webdriver.
//Note i m using firefox driver, others can also be used.
IWebDriver driver = new OpenQA.Selenium.Firefox.FirefoxDriver();
//Navigating to the given page.
driver.Navigate().GoToUrl("url of the page you want to get the option from");
//Finding the element. If element not present it throws exception so do remember to handle it.
var element = driver.FindElement(By.Id("ctl00_BodyContent_ddlChooseView"));
//No intializing the select element option.
SelectElement selectElem = new SelectElement(element);
selectElem.SelectByValue("H");
//or i can select option using text that is
selectElem.SelectByText("Option1");
}
}
}
</code>
很抱歉出现缩进。
这可以通过使用selenium网络驱动程序轻松完成。读一读,很适合处理这类事情。
在这里,我首先选择使用Webdriver库获得选项的元素 var selectElem = driver.FindElement(By.Id("ctl00_BodyContent_ddlChooseView"));
现在使用WebDriver.Support.UI库,我可以获得所有选项SelectElement selectOption = new SelectElement(selectElem);
现在,您可以对元素执行任何操作。ie
喜欢selectOption.SelectByValue("here u give the value")
或selectOption.SelectByText("here u give the value")
还有更多。。。你发现的。