Сохранить раздел веб-страницы как HTML - PullRequest
1 голос
/ 15 июня 2019

Я пытаюсь сохранить часть веб-страницы и сохранить ее в виде файла HTML.

Я могу сделать это вручную следующим образом:

Когда я использую F12 (инструменты разработчика) вChrome или Mozilla и с помощью селектора выберите нужную позицию веб-сайта, я вижу div и копирую Xpath.Затем я копирую HTML-код этого элемента и вставляю в редактор блокнота и сохраняю его как HTML.

Я использовал до Selenium IDE, но не нашел способа сохранить содержимое Xpath этогоdiv.

Есть ли способ сделать это с помощью комбинации Selenium IDE и JavaScript или Python?

Может быть, кто-то может подсказать мне, как этого добиться.

Спасибо

Ответы [ 2 ]

2 голосов
/ 16 июня 2019

Вы имели в виду Selenium IDE или Selenium + Python? Мой ответ для Selenium IDE (Python не требуется).

Команда store Text делает то, что вам нужно:

Команда storeText в инструменте тестирования программного обеспечения Selenium IDE полезна для сохранения текстового значения элемента страницы в переменной для будущего использования. Поэтому это рекомендуемая команда для извлечения информации из текста и таблиц HTML.

Обратите внимание, что для полей ввода, выберите поля, флажки, радиокнопки или текстовые области, поскольку текст, который вы видите, является технически значением поля. Поэтому storeText не работает с этими элементами по умолчанию, он возвращает "". Вместо этого используйте store Value для извлечения текста из элементов ввода.

В общем, см. просмотр веб-страниц с помощью Selenium IDE для всех возможных вариантов.

Сохранить в файл:

Этого нельзя сделать в обычном селене ide, но ui.vision selenium ide ++ имеет дополнительную команду, которая делает это возможным:

csvSave - он предназначен для создания файлов CSV с данными, но, конечно, вы можете использовать его и с одним значением:

  • storeText | xpath=... | var1 (извлечение значения в var1)
  • store | ${var1} | !csvLine (добавить значение var1 в файл CSV)
  • csvSave | filename (записать текущую строку CSV на диск)

Если вы хотите сохранить полную веб-страницу , другой вариант - использовать симуляцию CTRL + S с XType | ${KEY_CTRL+KEY_S}

0 голосов
/ 15 июня 2019

это просто пример селена, а не ваш конкретный ответ.

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
import time
import random


from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys




seed = 1
random.seed(seed)

driver = webdriver.Chrome()
driver.get("https://www.myntra.com/")

element = driver.find_element_by_xpath("//*[@id='desktop-header-cnt']/div[2]/div[3]/input")

# Put the word "history" in the search box and hit enter
element.send_keys("pantaloons")
element.send_keys(Keys.RETURN)

time.sleep(3)
for i in range(1000):
    time.sleep(1)
    for i in range(120):
        actions = ActionChains(driver)
        actions.send_keys(Keys.ARROW_DOWN)
        actions.perform()
        time.sleep(0.10)

    element=driver.find_element_by_xpath(" //*[@id='desktopSearchResults']/div[2]/section/div[2]/ul/li[12]/a")
    element.click()
    time.sleep(1)




#
#
# # Get a list of elements (videos) that get returned by the search
# search_results = driver.find_elements_by_id("video-title")
#
# # Click randomly on one of the first five results
# search_results[random.randint(0,10)].click()
#
# # Go to the end of the page (I don't know if this is necessary
#
# #
# time.sleep(4)
#
# # Get the recommended videos the same way as above. This is where the problem starts, because recommended_videos essentially becomes the same thing as the previous page's search_results, even though the browser is in a new page now.
# while True:
#     recommended_videos = driver.find_elements_by_xpath("//*[@id='dismissable']/div/a")
#     print(recommended_videos)
#     recommended_videos[random.randint(1,4)].click()
#     time.sleep(4)

Вы можете попытаться сбросить исходный код страницы и проанализировать его, или сбросить только источник источника.

Переменная источника в переменную pageSource (Java):

String pageSource = driver.getPageSource (); Элемент источника в переменную elementSource (Java):

Элемент WebElement = driver.findElement (By.id ("id")); String elementSource = element.getAttribute ("innerHTML");

...