【问题标题】:WatiN, filling an input by CSS selector does not workWatiN,通过 CSS 选择器填充输入不起作用
【发布时间】:2014-02-01 01:52:04
【问题描述】:

我正在尝试使用 WatiN 填充与给定 CSS 选择器匹配的输入。 这是一个代码示例:

public ActionResult Do(WebScraper webScraper)
        {
            var target = webScraper.Browser.Element(Find.BySelector(TargetSelector));
            if (target == null)
            {
                return ActionResult.Failure(string.Format("No element found matching selector '{0}'.", TargetSelector));
            }

            target.SetAttributeValue("value", Value);
            return ActionResult.Success();
        }

使用“#someID”的 TargetSelector 进行测试。在执行此操作之前检查了页面,我可以看到<input id="someID" ... ></input>

收到如下所示的错误:

找不到匹配条件的元素标签:Selector = '#someID'

谢谢,

【问题讨论】:

  • 我从来没有使用过watin,但是您是否需要通过someID而不是#someID
  • 如果我没记错的话,Find.BySelector 需要一个 JQuery/CSS 样式选择器。这意味着前缀 '#' 和 '.'应该代表 id 和 class。
  • 如果你有ID,为什么不做一个Find.ById()?此外,在用于 CSSSelectors 的 Selenium 中,您不使用 # - 我不了解 WatiN,但您应该尝试一下。

标签: css-selectors web-scraping watin


【解决方案1】:

使用 Elements.Filter,得到了预期的结果...改用它。

//var target = webScraper.Browser.Element(Find.BySelector(TargetSelector));
var target = webScraper.Browser.Elements.Filter(Find.BySelector(TargetSelector)).FirstOrDefault();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-21
    • 2017-03-17
    • 1970-01-01
    • 2014-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-06
    相关资源
    最近更新 更多