Нажатие на элемент, не запускающий событие в Selenium Python (ключ события отсутствует в файле данных) - PullRequest
0 голосов
/ 12 февраля 2020

У меня есть проблема, когда я хочу нажать на элемент кнопки, это не вызывает событие. В моем случае я пытаюсь добавить товар в корзину. Прежде чем нажать кнопку «Добавить в корзину», необходимо нажать на размер. Я использую chrome безголовый браузер, а также веб-драйвер.

HTML страницы

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.keys import Keys
import os

chrome_options = Options()
chrome_options.add_argument("--headless")
chrome_options.binary_location = (r"C:\Users\dkael\AppData\Local\Google\Chrome SxS\Application\chrome.exe")

driver = webdriver.Chrome(executable_path=os.path.abspath("chromedriver"),   chrome_options=chrome_options)
driver.get("https://www.nike.com/sg/launch/t/react-presto-undercover-white/")
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH,"//button[contains(text(),'US 10.5')]"))).click()
WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, "//div[contains(@class,'buying-tools-container')]//li[contains(@class,'selected')]")))
element = driver.find_element_by_xpath("//button[@class='ncss-brand ncss-btn-black pb3-sm prl5-sm pt3-sm u-uppercase u-full-width']")
element.send_keys(Keys.ENTER)
driver.save_screenshot("test.png")

print("success")

driver.quit()

Я также пробовал это

WebDriverWait(driver, 20).until(EC.element_located_to_be_selected((By.XPATH,"//button[@class='ncss-brand ncss-btn-black pb3-sm prl5-sm pt3-sm u-uppercase u-full-width']"))).click()

Я считаю, что здесь можно найти ошибку:

*PROJECT_CONFIG: Event key add-to-cart-clicked is not in datafile.", source: https://c.go-mpulse.net/boomerang/R6SH7-84RFL-GQQ8S-CW6MF-W5RWR*

1 Ответ

0 голосов
/ 12 февраля 2020

Почему вы не используете driver.find_element_by_link_text ('ENTER_TEXT_HERE')?

...