【问题标题】:How can I scrape text based on a fields ID using WatiN?如何使用 WatiN 根据字段 ID 抓取文本?
【发布时间】:2012-01-22 19:59:49
【问题描述】:

我正在开发一个程序,该程序将访问一个网站,然后将特定字段的文本复制并存储到内存中。网页上的字段信息显示为:

<div id="doc-original-text">

使用以下代码,我可以在页面上选择一个文本字段并输入我自己的文本:

using (myIE) {
myIE.TextField(Find.ById("descr")).Value = txtbxMessage.Text; }

在该代码中,我告诉我的 IE 实例通过它的 ID 选择 TextField。我想知道是否可以以类似的方式告诉 myIE 通过字段的 ID 查找已经存在的文本并将其复制到内存中?比如:

//made up theoretical code
using (myIE) {
string information = myIE.Text(Find.ByID("doc-original-text")).Copy.ToString();

我也尝试使用此代码,但没有成功。我不确定“TextField”的调用是否合适?

using (myIE) {
myIE.TextField(Find.ById("doc-original-text")).ToString(); }

【问题讨论】:

  • ..Find(By.Attribute("..") 怎么样?
  • 我仍然不确定如何实现它。例如,第一部分告诉 myIE 它在寻找什么“TextField”。我不知道如何指定查找文本,或者如何将其复制到内存中。
  • 另外,你可以试试 ..(Find.ByValue(".."));
  • 值因条目而异,因此我需要能够根据字段容器 id 进行抓取。

标签: c# winforms copy web


【解决方案1】:

我使用 WaitiN 测试记录器尝试了一些事情,并想出了一种方法,可以在 ID 'doc-original-text' 下的字段中抓取文本。代码如下:

using (myIE)
        {
            //this loads the website
            myIE.GoTo(txtbxWebSite.Text);                
            //stores the text from the area on the site in a string called 'temp'
            string temp = myIE.Div(Find.ById("doc-original-text")).ToString();
            //displays the string scraped
            MessageBox.Show(temp); }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-03
    • 2019-08-19
    • 2023-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多