2013-12-18 3 views
2

Только для учебных целей, я пытаюсь нажать на третий элемент Google Результаты ПредложенияНажатие на Google Результат Предложения

Clicking on Google Suggestions

На рисунке выше, я хочу, чтобы нажать на Согласие. Мой код получает предложения по результатам и нажимает на третий элемент.

List<WebElement> resultsuggestion = driver.findElements(By.cssSelector(".gssb_m > tbody:nth-child(1) > tr")); 
new Actions(driver).click(resultsuggestion.get(2)); 

Но Selenium не нажимает на него. Пожалуйста, дайте мне знать, если что-то неправильно в коде выше или предложить мне альтернативные решения

+0

Есть ли конкретная причина, по которой вы используете класс 'Actions()' в этом случае? Вам, вероятно, не нужно. Кроме того, для завершения 'Action()' вам нужно добавить '.perform()' в конец вашей строки, 'new Actions (driver) .click (resultsuggestion.get (2)). Perform();' –

+0

Спасибо @MarkRowlands за информацию. Я сначала использовал .click, но не работал. он просто подсвечивается .. так что я попытался Действия .. – karthik27

ответ

1

Попробуйте изменить код:

WebElement result = driver.findElement(By.cssSelector(".gssb_m > tbody > tr:nth-child(3)")); 
result.click(); 

с помощью :nth-child обычно необходимо специально для выявления детей. Кажется, вы пытаетесь найти кратные только 1 tbody.

Кроме того, использование класса Actions для простого щелчка очень не нужно, если у вас есть метод WebElement#click.

+0

кажется щелчок на tr: nth-child (3) просто выделяет его .. так сузил его до tr: nth-child (3)> td.gssb_a.gbqfsf> div. gsq_a .. это работает. – karthik27

0

Ниже еще один способ я нашел:

WebElement result = driver.findElement(By.cssSelector(".gssb_m tr:nth-of-type(3)")); 
result.click(); 

.gssb_m tr:nth-of-type(3): Под class='gssb_m' элемент, он ищет третьего tr тега.

Смежные вопросы