Selenium webdriver нажмите поиск в Google

Я ищу текст "Сыр!" на главной странице Google 9X_core-java и не знаете, как я могу нажимать на найденные 9X_java-api ссылки после нажатия кнопки поиска. Например, я 9X_core-java хотел щелкнуть третью ссылку сверху на странице 9X_selenium поиска, тогда как я могу найти ссылку и 9X_core-java щелкнуть по ней. Мой код на данный момент:

package mypackage; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.ui.ExpectedCondition; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.support.ui.WebDriverWait; public class myclass { public static void main(String[] args) { System.setProperty("webdriver.chrome.driver", "C:\\selenium-java-2.35.0\\chromedriver_win32_2.2\\chromedriver.exe"); WebDriver driver = new ChromeDriver(); driver.get("http://www.google.com"); WebElement element = driver.findElement(By.name("q")); element.sendKeys("Cheese!"); element.submit(); //driver.close(); } } 

17
0
4
Общее количество ответов: 4

Ответ #1

Ответ на вопрос: Selenium webdriver нажмите поиск в Google

Google сокращает свои классы CSS и т. д., поэтому 9X_core-java определить все непросто.

Также у вас есть 9X_java проблема, что вам нужно «ждать», пока сайт 9X_javax покажет результат. Я бы сделал это так:

public static void main(String[] args) { WebDriver driver = new FirefoxDriver(); driver.get("http://www.google.com"); WebElement element = driver.findElement(By.name("q")); element.sendKeys("Cheese!\n"); // send also a "\n" element.submit(); // wait until the google page shows the result WebElement myDynamicElement = (new WebDriverWait(driver, 10)) .until(ExpectedConditions.presenceOfElementLocated(By.id("resultStats"))); List findElements = driver.findElements(By.xpath("//*[@id='rso']//h3/a")); // this are all the links you like to visit for (WebElement webElement : findElements) { System.out.println(webElement.getAttribute("href")); } } 

Это 9X_jdk напечатает вам:

  • http://de.wikipedia.org/wiki/Cheese
  • http://en.wikipedia.org/wiki/Cheese
  • http://www.dict.cc/englisch-deutsch/cheese.html
  • http://www.cheese.com/
  • http://projects.gnome.org/cheese/
  • http://wiki.ubuntuusers.de/Cheese
  • http://www.ilovecheese.com/
  • http://cheese.slowfood.it/
  • http://cheese.slowfood.it/en/
  • http://www.slowfood.de/termine/termine_international/cheese_2013/

32
0

Ответ #2

Ответ на вопрос: Selenium webdriver нажмите поиск в Google

@Test public void google_Search() { WebDriver driver; driver = new FirefoxDriver(); driver.get("http://www.google.com"); driver.manage().window().maximize(); WebElement element = driver.findElement(By.name("q")); element.sendKeys("Cheese!\n"); element.submit(); //Wait until the google page shows the result WebElement myDynamicElement = (new WebDriverWait(driver, 10)).until(ExpectedConditions.presenceOfElementLocated(By.id("resultStats"))); List findElements = driver.findElements(By.xpath("//*[@id='rso']//h3/a")); //Get the url of third link and navigate to it String third_link = findElements.get(2).getAttribute("href"); driver.navigate().to(third_link); } 
9X_selenium
4
0

Ответ #3

Ответ на вопрос: Selenium webdriver нажмите поиск в Google

Может быть несколько способов найти элемент 9X_openjdk (в вашем случае третий результат поиска 9X_.java Google).

Один из способов - использовать 9X_selenium Xpath

#For the 3rd Link driver.findElement(By.xpath(".//*[@id='rso']/li[3]/div/h3/a")).click(); #For the 1st Link driver.findElement(By.xpath(".//*[@id='rso']/li[2]/div/h3/a")).click(); #For the 2nd Link driver.findElement(By.xpath(".//*[@id='rso']/li[1]/div/h3/a")).click(); 

Другие варианты

By.ByClassName By.ByCssSelector By.ById By.ByLinkText By.ByName By.ByPartialLinkText By.ByTagName 

Чтобы лучше понять каждый 9X_java-libraries из них, вам следует попробовать изучить 9X_java Selenium на чем-то более простом, чем страница 9X_java-se результатов поиска Google.

Пример - http://www.google.com/intl/gu/contact/

Для взаимодействия 9X_java-se с полем ввода текста с заполнителем «Чем 9X_oraclejdk мы можем помочь? Спросите здесь». Вы можете 9X_jdk сделать это так -

# By.ByClassName driver.findElement(By.ClassName("searchbox")).sendKeys("Hey!"); # By.ByCssSelector driver.findElement(By.CssSelector(".searchbox")).sendKeys("Hey!"); # By.ById driver.findElement(By.Id("query")).sendKeys("Hey!"); # By.ByName driver.findElement(By.Name("query")).sendKeys("Hey!"); # By.ByXpath driver.findElement(By.xpath(".//*[@id='query']")).sendKeys("Hey!"); 

2
0

Ответ #4

Ответ на вопрос: Selenium webdriver нажмите поиск в Google

Основываясь на быстром просмотре веб-сайта 9X_j2se Google, это будет путь CSS к ссылкам в списке 9X_java страниц

ol[id="rso"] h3[class="r"] a

Итак, вы должны сделать что-то вроде

String path = "ol[id='rso'] h3[class='r'] a"; driver.findElements(By.cssSelector(path)).get(2).click(); 

Однако 9X_java вы также можете использовать xpath, который на 9X_selenium самом деле не рекомендуется в качестве наилучшей 9X_java-se практики, а также локаторы JQuery, но я 9X_java-api не уверен, что вы можете использовать их 9X_.java где-нибудь еще, кроме Arquillian Graphene

1
0