2017-07-18 109 views
-1

我使用Selenium PhantomJS执行无头动态抓取。我能够提取除由ng-click触发弹出式广告,比如所有信息:在硒蟒蛇中查找标签

<button href="#" ng-click="navigation.login({edu:false})">login</button> 
<a class="btn btn-primary" ng-click="login()">signup</a> 

我想获得一个包含NG-点击标签的标签,这样我就可以执行的onclick活动,并从中提取信息。

ng-click值和标签可以是任何东西,我只是想搜索一个标签是否包含ng-click或不是,如果它然后返回该标签。 我不想使用正则表达式或类似的东西。

+0

为什么不使用正则表达式? –

+0

不是一个好的选择... –

+0

XPATH是如何轻松解决这些问题,虽然... –

回答

0

它的工作原理。

elements = driver.find_elements_by_xpath("//*[(@ng-click)]")

1

最简单的解决方案是使用XPath检查ng-click值的长度。

elements = driver.find_elements_by_xpath("//*[string-length(@ng-click) > 1]") 
for element in elements: 
    element.click()