浏览搜索结果页面并使用selenium webdriver

时间:2017-06-27 09:29:08

标签: java loops selenium selenium-webdriver cucumber

考虑我必须在Macbook上进行 Google搜索,我必须浏览搜索结果页,直到找到 eBay 链接。

例如,如果eBay链接位于Google搜索结果页的第3页,那么我的Selenium脚本应该足够聪明,以实现第1页和第1页。 2不要包含eBay链接,在第3页中应该点击eBay链接。

我的伪代码尝试使用driver.findElement(By.LinkText("Ebay.co.uk"))识别易趣链接,但我不确定如何在搜索结果页面中找到易趣链接。

我所尝试的是以下伪代码:

if (driver.isLinkPresent("Ebay.co.uk")) {
    then driver.findElement(By.linkText(Ebay)).click();
    Else 
            Navigate to next Search result page
})(Repeat the loop until the link is found);

有关如何将其转换为代码级别的任何想法?很高兴,如果有人可以提供帮助!

1 个答案:

答案 0 :(得分:1)

我将能够告诉你如何,但由于我没有使用selenium和Java,我将无法提供确切的代码。

这是伪代码:

found = false;

while(found == false){

   attemptFind = $driver.findElements({xpath: "//h3[contains(text(),'eBay: Electronics')]"}); // Returns an array of headers are found with Ebay.co.uk in

   if attemptFind.length() == 0 || attemptFind == null {
      currentPage = $driver.findElement({css: "td.cur"}).getText(); // Get Current Page Number
      nextPage = (currentPage.toInt() + 1).toString(); // Add 1 to current page

      $driver.findElement({css: "a[aria-label='Page "+nextPage+"']"}).click(); // Go to next page
   } else {
      attemptFind[0].click(); // Click on the Ebay link
      found = true; // Break out of loop
   }
}