在CasperJS中使用__utils __。getElementsByXPath查找元素

shaunthomas999

下面是我的casper.js测试脚本的摘录;

var refObject = undefined;

casper.then(function() {
  refObject = this.evaluate(function() {
    return __utils__.getElementsByXPath('//div[contains(concat(" ", @class, " "), " refObject ")]//a[contains(normalize-space(text()), normalize-space("SampleTest"))]//../../../..');
  });
  require('utils').dump(refObject);
  this.echo(refObject);
  test.assertTruthy(refObject);
});

在这里,我在Evaluate函数内部试图引用一个看起来如下的html元素;

<div class="refObject">
    <div class="accordion-heading">
        <div class="accordion-toggle">
            <div class="btn-group">
                <a class="dropdown-toggle" data-toggle="dropdown">SampleTest</a>
            </div>
        </div>
    </div>
</div>

在Google Chrome浏览器(Ctrl + F)中,我测试了xpath并发现引用正确。但是当我执行casperjs脚本时,我得到require('utils').dump(eobject)as[]this.echo(eobject)as的输出为空。有谁知道可能是什么问题?

Artjom B.

这是PhantomJS的问题您不能将DOM元素从页面上下文传递到外部。您必须具有一些原始表示形式。

注意:参数和评估函数的返回值必须是一个简单的原始对象。经验法则:如果可以通过JSON序列化,那就很好。

闭包,函数,DOM节点等将不起作用!

您可以通过返回数组的长度而不是实际列表来检查这是否是问题。

另一个问题可能是匹配a元素后的子搜索使用

normalize-space("SampleTest"))]/../
-------------------------------^

代替

normalize-space("SampleTest"))]//../

您的XPath表达式不必要地复杂,甚至容易出错。这可能更好:

// div [contains(concat(“”,@class,“”),“ refObject”)和.// a [contains(text(),“ SampleTest”)]]]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Selenium中使用父元素查找元素

来自分类Dev

CasperJS无法使用CSS选择器或xPath查找元素

来自分类Dev

使用casperjs检查元素

来自分类Dev

使用casperjs检查元素

来自分类Dev

如何正确使用getElementByXpath和getElementsByXpath?

来自分类Dev

使用 jquery 查找元素

来自分类Dev

如何在Android中使用元素标签查找xml元素

来自分类Dev

使用 VBA Excel 在 HTML 中使用星号查找元素

来自分类Dev

使用其innerHTML查找元素

来自分类Dev

使用点击事件查找元素

来自分类Dev

如何使用xpath查找元素?

来自分类Dev

使用ref查找嵌套元素

来自分类Dev

使用getElementById查找子元素

来自分类Dev

如何使用硒查找元素

来自分类Dev

如何使用 text() 查找元素

来自分类Dev

在Python中使用minidom查找XML元素的特定路径

来自分类Dev

在C ++中使用STL在数组中查找最小元素

来自分类Dev

在Jmeter中使用Selenium查找网页中的元素

来自分类Dev

在python硒中使用src或href代码查找元素

来自分类Dev

使用xPath查找时Appium查找错误的元素

来自分类Dev

如何使用Splinter查找元素值?

来自分类Dev

使用Python在Selenium中查找故障元素

来自分类Dev

使用JQuery查找和替换子元素

来自分类Dev

使用QueryBuilder查找包含元素的数组

来自分类Dev

使用递归函数查找最大元素

来自分类Dev

如何使用webdriver查找按钮元素?

来自分类Dev

如何使用WebDriver查找按钮元素

来自分类Dev

使用jQuery查找和隐藏元素

来自分类Dev

如何使用动态ID查找ExtJS元素