我需要点击特定链接。不幸的是,我无法控制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不是函数
答案 0 :(得分:0)
问题在于您无法反复调用getElementsByTagName()
- 该函数会返回HTMLCollection
个元素,并且getElementsByTagName()
函数无法再次应用于此。< / p>
使用一种方法可能是:
document.getElementsByTagName('table')[0].childNodes[0].childNodes[x].childNodes[y].click()