Когда я просматриваю страницу, каждая из три полученных фильма имеют следующий код:
=
...
Dune =
...
Paul Atreides, a brilliant and gifted young man born into a great dest...
где весь код тот же, за исключением (d5NXSklXo0qyIYkgV94XAgMIckC.j), источника изображения (http://image.tmdb.org/t/p/ w500//d5NXSklXo0qyIYkgV94XAgMIckC.jpg), название фильма (Дюна) и сокращенное описание фильма (Пол Атрейдес, гениальный...).
Когда я пытаюсь найти изображение по его классу = "карточка-изображение", я получаю ошибку
WebDriverException: ... {"code":-32000,"message":"Cannot take screenshot with 0 height."}
Посмотрев на это, я вижу, что получаю эту ошибку, потому что таким образом помечены несколько элементов. Однако я не могу найти уникальный указатель для изображения титульной карточки или любого другого элемента, который я ищу, поскольку все три отображаемых фильма выглядят так, как будто они имеют один и тот же код.
Я думаю, что это можно сделать с помощью ключевых слов из библиотеки Selenium, но я новичок в этом и не смог найти то, что мне нужно. Вот мой код, включая некоторые вещи, которые я пробовал и закомментировал. Как видите, я понятия не имею, что делаю... Буду очень признателен за любую помощь.
*** Settings ***
Documentation Searches for given movie on RPA Challenge site
... and saves resulting data in JSON.
Library OperatingSystem
Library RPA.Browser.Selenium
Suite Teardown Close All Browsers
*** Variables ***
${RPA_Challenge_URL} https://rpachallenge.com
${img_URL} http://image.tmdb.org
${movie} Dune
*** Keywords ***
Open RPA Challenge Page
${use_chrome} = Get Environment Variable USE_CHROME ${EMPTY}
IF "${use_chrome}" != ""
Open Available Browser ${RPA_Challenge_URL} browser_selection=Chrome
... download=${True} # forces Chrome and matching webdriver download
ELSE
Open Available Browser ${RPA_Challenge_URL} # opens any available browser
END
Switch to Movie Search Tab
Click Link xpath://a[text()='Movie Search']
Search for Given Movie
Input Text name:searchStr ${movie}
Press Keys name:searchStr ENTER
Wait Until Page Contains Element css:div[class='card-image']
# WebDriverException: ... {"code":-32000,"message":"Cannot take screenshot with 0 height."}
Save Movie Card Image
# Assign ID to Element //ul[@class='card-image' and ./li[contains(., '_ngcontent-c3')]] movie_cover
Capture Element Screenshot css:div[class='card-image']
# Capture Element Screenshot xpath://a[contains(text(), 'image.tmdb.org'.)]
# Capture Element Screenshot xpath://a[tag:img]
# Capture Element Screenshot css:div[class='card-image' and contains(text(), 'image')] # invalid
# Element with locator 'css:div[class='card-title-activator']' not found.
Save Movie Title
Capture Element Screenshot css:div[class='card-title-activator']
# Return JSON
# print(driver.find_element_by_xpath("//div[@id='json']").text)
# Does the above need to go in a .py file?
*** Tasks ***
Return movie information from RPA Challenge site
TRY
Open RPA Challenge Page
Switch to Movie Search Tab
Search for Given Movie
# Save Movie Title
Save Movie Card Image
EXCEPT
${err_ss} = Set Variable ${OUTPUT_DIR}${/}error.png
Capture Page Screenshot ${err_ss}
Fail Checkout the screenshot: ${err_ss}
END
Подробнее здесь: https://stackoverflow.com/questions/783 ... g-selenium
Мобильная версия