создание селена нажмите на элемент specfi c - PullRequest
0 голосов
/ 26 марта 2020

Я хочу открыть эту страницу https://www.tesla.com/en_gb/models/design#battery и программно нажать кнопку производительности с python.

from selenium import webdriver
import time
browser = webdriver.Chrome('../Downloads/chromedriver.exe')
browser.get('https://www.tesla.com/en_gb/models/design#battery')
A = browser.find_element_by_xpath("//div[@class='group--options_block_title']/span/p")
time.sleep(30)
A.click();

Я подумал, что проблема может заключаться в том, что страница не успела загрузить, но дать 30 секунд не помогло.

, если работает, диапазон должен быть 367, а не 379

Ответы [ 2 ]

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

Ваш селектор находит 2 элемента, и первый из них - это не производительность. Попробуйте это:

//div[@role='button' and @aria-label='Performance']

Так что, похоже, вы действительно нажимали, но один элемент уже был активным.

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

Пожалуйста, ознакомьтесь с кодом ниже, иногда сайты загружаются слишком долго, поэтому было бы неплохо, если бы вы использовали WebDriverWait в своем решении. Также не рекомендуется использовать Abs XPath.

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
import time
driver = webdriver.Chrome(executable_path=r"C:\New folder\chromedriver.exe")

driver.get('https://www.tesla.com/en_gb/models/design#battery')
wait = WebDriverWait(driver,30)
element = wait.until(EC.element_to_be_clickable((By.XPATH, "//p[contains(text(),'Performance')]")))
print element.text
element.click()
element1 = wait.until(EC.presence_of_element_located((By.XPATH, "//span[contains(text(),'367')]")))
print element1.text
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...