0
我试图点击给定网页的循环。一旦点击,我需要再次获取链接。我被困在必须从栈中弹出链接的地方。我将如何继续收集其他链接并删除重复内容?使用硒循环链接使用硒
public static void path(String url){
WebDriver driver = new FirefoxDriver();
driver.get(url);
Deque<String> stack = new ArrayDeque<String>();
boolean goal = true;
while(!goal){
for(WebElement links: driver.findElements(By.tagName("a"))){
System.out.println(links.getAttribute("href"));
stack.push(links.getAttribute("href"));
}
for(int i = 0; i < stack.size();i++){
if(stack.)// remove duplicates ????????
driver.get(stack.pop());
i++;
}
}
}
HTML
<div id="menunav">
<ul>
<li><a href="index.php"><span>Home</span></a></li>
<li><a href="chinese_menu.php"><span>Menu</span></a></li>
<li><a href="chinese_food_catering.php"><span>Catering</span></a></li>
<li><a href="restaurant_events.php"><span>Events</span></a></li>
<li><a href="gallery.php"><span>Gallery</span></a></li>
<li><a href="contact.php"><span>Contact</span></a></li>
</ul>
</div>
可以向我们展示你的HTML。我认为应该有一些属性可能会改变一旦你点击链接。这样你可以再次获取所有的链接,而没有那个属性改变 – 2015-03-02 06:09:07
所以我应该使用不同的类方法?前进和后退导航属性如何“改变”? – user4073939 2015-03-02 06:35:50
你可以检查链接被点击后改变的任何css属性。例如:让一个链接被点击后让“x”css属性改变它的颜色(因为几乎所有在google搜索中改变为红色的链接都会发生)。那么在XPath或CSS定位器条件中,您可以指定获取CSS属性未更改的所有链接。 – 2015-03-02 08:22:10