Android:在webview中使用javascript单击没有id或类的链接

时间:2015-05-08 15:20:41

标签: javascript android class click

我需要点击特定链接。不幸的是,我无法控制html页面,我所拥有的是:

<table width="10%" height="44px" cellspacing="0px" border="0" padding="0px">
<tbody>
<tr>
<td>
<a href="https://www.example.com/test">
<img border="0" src="https://www.example.com/images/img.png">
</a>
</td>
<td>
<a href="https://www.example.com/test2">
<img border="0" src="https://www.example.com/images/img2.png">
</a>
</td>
</tr>
</tbody>
</table>

我试过这样的事情:

 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    WebView view = (WebView) findViewById(R.id.webView);
    WebSettings faller = view.getSettings();
    String url = "http://donnow.net/test/test.html";
   faller.setJavaScriptEnabled(true);
   view.loadUrl(url);
    view.setWebViewClient(new WebViewClient() {
        public void onPageFinished(WebView view, String url) {
            view.loadUrl("javascript:document.getElementsByTagName('table').getElementsByTagName('td')[1].getElementsByTagName('a').click();");
             }
          });

}

我收到此错误:

  

未捕获的TypeError:document.getElementsById不是函数

1 个答案:

答案 0 :(得分:0)

问题在于您无法反复调用getElementsByTagName() - 该函数会返回HTMLCollection个元素,并且getElementsByTagName()函数无法再次应用于此。< / p>

使用一种方法可能是:

document.getElementsByTagName('table')[0].childNodes[0].childNodes[x].childNodes[y].click()