如何点击一个简单的链接?

时间:2015-08-25 13:42:03

标签: javascript css-selectors phantomjs

我已使用PhantomJS登录网页。一切正常。我打印页面并知道我已登录。现在我想点击一个名为"分析"的链接。和以下的HTML代码。

x+2

通常我"点击"在元素上使用

 <div class="navbar-subnav" data-id="Dashboard">
  <ul class="tab-list nav navbar-nav">

            <li class='active'><a href="/"><i class='icon-chart-pie'></i> Dashboard</a></li>

            <li><a href="/index/analyses"><i class='icon-search'></i> Analysis</a></li>

            <li><a href="/date_time/set_date_time"><i class='icon-cog'></i> Settings</a></li>

            <li><a href="/report/report" onclick="setTimeout(showLoading, 50);"><i class='icon-chart-area'></i> Reports</a></li>

            <li><a href="/manual/csc"><i class='icon-info-circled'></i> About</a></li>


</ul>

但在这种情况下没有ID。 那么当我目前在/ index?

时,如何导航到/ index / analysis

由于我必须登录,因此我必须使用相同的会话,因此简单的document.getElementById("logInButton").click(); 命令无法正常工作。

我试过

page.open

但是日志总是显示

 function(){

console.log(document.querySelector('[href="/index/analyses"]'));
    document.querySelector('[href="/index/analyses"]').click();
},

并使用它来保存日志。

3 个答案:

答案 0 :(得分:1)

您可以通过href属性值获取元素:

document.querySelector('[href*="/index/analyses"]')

然后你可以用它触发点击事件或任何你想要的东西:)

自IE8(MDN)支持querySelector。

JSFiddle

答案 1 :(得分:1)

用简单的

做了
function(){         
        page.open('https://localhost/index/analyses',function(status){
    });    
},

答案 2 :(得分:0)

如果您的网页上只有一个<li>元素,其中包含&#39; active&#39;然后你可以写:

document.getElementsByClassName('active')[0].children[0].click();

如果某个<li class="active">元素中有更多<ul id="elementID">个元素,那么您可以编写如下内容:

var ul = document.getElementsById('elementID');
var li = ul.children[0];//Here 0 is index of the first child, but if you want second element you can put 1 etc.
var a = li.children[0];//Here is your <a> element 
a.click();

更新

这应该有效:

document.getElementsByClassName("tab-list")[0].children[1].children[0].click()