Не удается найти элемент по имени класса или xpath selenium python - PullRequest
0 голосов
/ 10 ноября 2018

Я пытаюсь создать тест, но не могу найти (и затем щелкнуть) элемент с уникальным именем, который находится на странице HTML.

Это работает до здесь:

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

driver = webdriver.Chrome()
driver.get("https://www.hallmark.nl/kaarten/verjaardag-man/")
wait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "a[href*='https://www.hallmark.nl:443/kaarten/verjaardag-man/grappig-m/hallmark/een-jaguar-voor-je-verjaardag-3346861.aspx']"))).click()
wait(driver, 10).until(EC.element_to_be_clickable((By.ID, "btnShowSizepicker"))).click()
wait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//span[text()='Standaard']"))).click()

Я пытаюсь нажать кнопку «Бинненкант» (обратите внимание на завершающий пробел). Для этого я попробовал:

elem = driver.find_element_by_class_name('primaryButton').click()

elem = driver.find_element_by_xpath('//button[.="Binnenkant "]').click()

elem = driver.find_element_by_xpath(//*[@id="CardSelectBar"]/div[3]/button[2]/text()).click() #xpath copied from Chrome

Но я каждый раз получаю сообщение об ошибке «нет такого элемента».

1 Ответ

0 голосов
/ 10 ноября 2018

На этой странице есть 2 класса: showDesktop и hideDesktop. Оба включают кнопку, которую вы ищете. Попробуйте этот Xpath:

"//div[contains(@class, 'showDesktop')]//button[contains(text(),'Binnenkant')]"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...