Печать текста из второго Div в классе в Python + Selenium - PullRequest
0 голосов
/ 27 марта 2020

newb ie здесь пытается выучить селен. У меня есть следующий HTML код:

<div class="lower-text">
<div data-text="winScreen.yourCodeIs">Your Code Is:</div>
<div>OUTPUTCODE</div>
</div>

Я пытаюсь распечатать только текст OUTPUTCODE, однако следующий код печатает только «Ваш код:».

text = browser.find_elements_by_class_name('lower-text') for test in text: print(test.text)

Любая помощь будет оценена. Спасибо.

Ответы [ 4 ]

0 голосов
/ 27 марта 2020

Я скопировал, вставил вашу html часть в новый текстовый файл и попробовал следующий xpath, который отлично работает:

// div [@ class = 'lower-text'] / div [text ( ) = 'Ваш код:'] / follow-sibling :: div

Также прикреплена ссылка на скриншот. Пожалуйста, посмотрите, и надеюсь, это решит вашу проблему. https://imgur.com/EujgZrI

0 голосов
/ 27 марта 2020

Попробуйте ниже Решения:

1. Xpath:

//div[@class='gs_copied']

2. CSS селектор

.lower-text > div:nth-child(2)

Ваш сайт работает нестабильно и не всегда генерирует код купона. В настоящее время я получаю сообщение об ошибке ниже (проверьте скриншот). Так что не смогу выделить элементы, о которых я упоминал выше.

Вам необходимо изменить логи c в зависимости от функциональности, и если человеку не повезло с получением кода купона, вам нужно написать скрипт для обработки других функций, основанных на вашем сайте (например: ознакомьтесь с нашими «горячими предложениями») Страница)

enter image description here

0 голосов
/ 27 марта 2020

Попробуйте следующий подход:

text = driver.find_element_by_xpath("//div[text()='Your Code Is:']//following-sibling::div[text()]").get_attribute('innerHTML')
print(text)
0 голосов
/ 27 марта 2020

Попробуйте следующий xpath.

//div[@class='lower-text']/div[last()]

Ваш код должен быть

print(driver.find_element_by_xpath("//div[@class='lower-text']/div[last()]").text)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...