Загрузить все элементы на странице Selenium + Ruby - PullRequest
0 голосов
/ 19 февраля 2019

Уведомление Я знаю, что об этом уже спрашивали, я пытался решить эту проблему, исследуя другие посты и документацию по селену, но я не могу решить эту проблему.
Вопросы: Как сделать так, чтобы все элементы на странице загружались до запуска селена?Почему мой код возвращает текстовые значения на определенных веб-страницах, а не на этом?
Воспроизвести проблему Я использую Selenium с Ruby & Chrome.Результат, который я ищу, заключается в том, чтобы зайти на веб-сайт, выбрать какой-то текст и имя его тега, т.е. «// h1« Революционное здравоохранение Diamond Physicians »», а затем проверить его на наличие селена.Я успешно работал с другими веб-страницами, за исключением этого сайта ... "https://diamondphysicians.com/" ... Я считаю, что это" бизнес "тема начальной загрузки, поэтому некоторые элементы загружаются при прокрутке к ним.

Этоэто лучшая сумма из того, что я читал и пытался. (Явное ожидание, неявное ожидание, щелчок элемента, и я попытался прокрутить до конца) ... Как заставить бота Selenium / Ruby ждать довыполнение действия?

код * Некоторые вещи хэшируются для тестирования

    options = Selenium::WebDriver::Chrome::Options.new
    #options.add_argument('--headless')
    #options.add_argument('--window-size=1280x1280')
    driver = Selenium::WebDriver.for :chrome, options: options
    #driver.navigate.to "https://diamondphysicians.com/"
    #wait = Selenium::WebDriver::Wait.new(:timeout => 15)
    driver.get("https://diamondphysicians.com/")
    #element = wait.until {driver.find_element(:class => "widget-title")}
    #element.click
    #driver.element(:class, "widget-title").when_present.click
    driver.execute_script("window.scrollTo(0, document.body.scrollHeight)")

    substring = "Welcome to the future of primary care!"
    driver.find_elements(:xpath => "//p").each do |r|
        puts "Cell Value: " + r.text
        if r.text.include? substring
            puts "FOUND IT FOUND IT FOUND IT FOUND IT FOUND IT FOUND IT FOUND IT"
        end 
    end


Когда я запускаю это, я получаю
Значение ячейки:
Значение ячейки:
Значение ячейки:
Значение ячейки:
Значение ячейки:
Значение ячейки:
Значение ячейки:
Значение ячейки:
Значение ячейки:
Значение ячейки:
Значение ячейки:
Значение ячейки:
Значение ячейки:
Значение ячейки:
Значение ячейки:
Значение ячейки: подпишитесь на рассылку новостей от Diamond Physicians дляпознакомиться с новейшими функциями и обменяться опытом с другими врачами-бриллиантами, членами or работодатели


РЕДАКТИРОВАТЬ Для тех, кто сталкивается с этим и нуждается в хорошем ресурсе, посетите этот блог.Действительно с 2/2019 https://yizeng.me/2014/04/08/get-text-from-hidden-elements-using-selenium-webdriver/

1 Ответ

0 голосов
/ 19 февраля 2019

Вместо этого

driver.find_elements(:xpath => "//p").each do |r|
        puts "Cell Value: " + r.text

Пожалуйста, попробуйте это

driver.find_elements(:xpath => "//p").each do |r|
        puts "Cell Value: " + driver.execute_script("return arguments[0].innerHTML", r)

Пожалуйста, дайте мне знать, если эта работа для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...