Как получить все элементы H4 по xpath - PullRequest
0 голосов
/ 19 апреля 2020

Я новичок в Selenium и Python. Я хочу сделать тест и для этого теста я хочу прочитать все названия продуктов.

<div class="caption">
                                <h4>Okulary</h4>
                                <p>Cena: 15.54 zł</p>
                                <p>Suspendisse fringilla enim libero, vitae tincidunt sapien fringilla ac.</p>
                                <p>
                                    <div class="input-group input-group-sm">
                                        <span class="input-group-btn">
                                            <button id="add-product-5e9b68c25b809" class="btn btn-sm" role="button"
                                                    data-add-to-basket
                                                    data-product-price="15.54"
                                                    data-product-name="Okulary" disabled>Dodaj</button>
                                        </span>
                                        <input type="number" min="0" step="1" class="form-control" value="0" autocomplete="off">
                                    </div>
                                </p>
                            </div>

и я пытался с

products = []
        wait = WebDriverWait(self.driver,60)
        titles = wait.until(EC.visibility_of_all_elements_located((By.XPATH, "//h4[text()]")))
        for title in titles:
            products.append(title.text)

, но все время получаю

 raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message: 

1 Ответ

1 голос
/ 19 апреля 2020

Вы используете visibility_of_all_elements_located для извлечения текста на основе //h4[text()], но в DOM Nazwa funkcjonalności: & Opis funkcjonalności: есть два h4 невидимых элемента. Отсюда TimeoutException, брошенный кодом. Попробуйте приведенный ниже код для разрешения вашего исключения.

driver.get('https://buggy-testingcup.pgs-soft.com/task_1')
driver.maximize_window()
wait = WebDriverWait(driver, 20)
productName=wait.until(EC.visibility_of_all_elements_located((By.XPATH, "//div[@class='caption']//h4")))

for name in productName:
    print(name.text)

Вывод:

enter image description here

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