Как найти элементы во вложенных элементах div с Selenium WebDriver - PullRequest
0 голосов
/ 09 января 2019

Я пытаюсь найти приложения в магазине Google Play и не могу найти элементы, вложенные в другие элементы. Я видел несколько примеров на Java и не уверен, что правильно реализую Ruby. Я хочу выбрать внешний контейнер div, затем выбрать div внутри него, пока не доберусь до заголовка приложения и не распечатать его.

Я прочитал документацию для Selenium WebDriver и попытался прочитать часть документации по rubygem, а также провел поиск в Google для поиска вложенных элементов div с помощью WebDriver. Это мой первый проект Selenium WebDriver.

i = 0

app_cards = driver.find_elements(:class_name, "card-content")
app_details = app_cards.find_elements(:class_name, "details")
app_titles = app_details.find_elements(:class_name, "title")

app_titles.each do |app_title|
    puts "App #{i}: " + app_title.attribute("title")
    i = i + 1
end

Я ожидал, что скрипт напечатает все результаты приложения на странице магазина Google Play, и я получу

main.rb:17:in `<main>': undefined method `find_elements' for #<Array:0x00005594417b5f68> (NoMethodError)

1 Ответ

0 голосов
/ 09 января 2019

вы можете сделать что-то подобное, чтобы напечатать все заголовки

require 'selenium-webdriver'
driver=Selenium::WebDriver.for :firefox
driver.manage.timeouts.implicit_wait = 20
driver.navigate.to('https://play.google.com/store/apps')
driver.find_elements(css: '.details > .title').to_enum.with_index(1) do |element,index|
  puts "App #{index}: " +element.attribute('title')
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...