如何使用selenium从网页获取链接
How to get links from web page using selenium
有什么方法可以获得webelement的链接位置吗。我知道我们可以从webelement中获取文本,也可以通过使用getAttribute("href")方法来定位href链接的链接。但我的要求是获得所有链接。例如,
1.< a href="http://www.java2s.com/">Example</a>
2. < a onclick="Test.TestFunction("9","testNumber","2");" style="cursor:pointer">This is text display on page</a>.
我有下面的用户给定的代码:
public void getAlllink(){
tcount = driver.findElements(By.tagName("a"));
System.out.println("Total Links on page :"+tcount.size());
for(WebElement we:tcount){
System.out.println("Link: "+str);//display element but not link.
we.click(); //This click on link
System.out.println(we.getText()); //display text code that fetched by selenium and not link text
System.out.println(we.getAttribute("href"));//display only one link http://www.java2s.com/
}
是否有任何方法可以获得这两个元素的链接位置。一个是简单链接,另一个是在调用JavaScript函数时生成的链接。
public class Java2sAllLinksCapture {
public static void main(String[] args) {
WebDriver driver = new FirefoxDriver();
driver.get("http://www.java2s.com/");
List<WebElement> links = driver.findElements(By.tagName("a"));
System.out.println(links.size());
for(int i=0;i<links.size();i++){
//print the link text
System.out.println(links.get(i).getText());
//Print the href's
System.out.println(links.get(i).getAttribute("href"));
}
}
}
您需要单击链接来执行javascript函数,该函数将返回一个将用作目标的链接。单击链接将转到目标页面,这将使以前的webElements不可用,因此无法检索该链接。如果不点击链接,javascript函数将不会执行和生成链接。
相关文章:
- AngularJS:获取链接中没有哈希的查询字符串值
- angular.js从数据库中获取链接
- jQuery 从特定子项获取链接
- 如何获取链接以保持活动状态
- Javascript的Haskell处理“;点击“;以获取链接
- 如何获取链接内容(innerHTML)并将其作为标题添加到其他链接
- 正在从随机文章中获取链接
- 动态生成id时获取链接的id
- 从h1标签获取链接并使图片可下载
- 使用jQuery获取链接的属性,并将其作为表单发布到另一个脚本文件
- 使用 JavaScript 从链接列表中获取链接名称
- 获取链接帖子使用脚本“data:post.url”博主不起作用
- 在IE 7中,如果链接是使用jQuery创建的,如何获取链接的href属性的文字值
- 如何从数组获取链接以在youtube Iframe API中播放
- jQuery:获取链接的html代码
- 单击时获取链接的 ID
- 混合面板 - 跟踪所有链接并获取链接值
- 如何使用 Scrapy 从点击事件获取链接
- 如何使用 Python 和 Selenium 获取链接的点击“操作”
- 如何在没有图像的情况下获取链接