【发布时间】:2016-12-20 17:15:24
【问题描述】:
我习惯于使用 PHP 的 Simple HTML DOM Parser(SHDP) 来访问元素,但我现在使用 ruby 和 watir-webdriver,我想知道这是否可以取代 SHDP 的功能来访问元素在页面上。
所以在 SHDP 中我会这样做:
$ret = $html->find('div[id=foo]');
这是divs 和id=foo 的所有实例的数组。哦,$html 是指定 URL 的 HTML 源。无论如何,所以我会把它放在一个循环中:
foreach($ret as $element)
echo $element->first_child ()->first_child ()->first_child ()->first_child ()->first_child ()->first_child ()->first_child ()->plaintext . '<br>';
现在,在这里,每个 ->first_child() 都是父 div 和 id=foo 的孩子(注意我有七个),然后我打印第 7 个孩子的明文。像这样的
<div id="foo">
<div ...>
<div ...>
<div ...>
<div ...>
<div ...>
<div ...>
<div ...>HAPPINESS</div>
</div>
</div>
</div>
</div>
</div>
</div
</div>
会打印出“幸福”。所以,我的问题是,如何使用 watir-webdriver 来完成(如果可能的话)?
另外,更一般地说,我如何在 watir-webdriver 中获得 SHDP 的 DOM 遍历能力:
我问是因为如果 watir-webdriver 不能做到这一点,我将不得不想办法将 watir-webdriver 中的浏览器实例的源通过管道传输到使用 SHDP 的 PHP 脚本并以这种方式获取它,并通过相关信息以某种方式将其返回给 ruby...
【问题讨论】:
-
文档/参考会很棒。
标签: php ruby dom html-parsing watir-webdriver