#python-3.x #selenium #selenium-webdriver #selenium-chromedriver
Вопрос:
код javascript веб-сайта:
div class="display-actions">==$0
<a class="show-all" href="/acount/previous_orders" data-yslinktracking="mainpage:previous_orders:all_previous_orders">All Previous Orders</a>
Здравствуйте, друзья, На сайте есть текст под названием «Все предыдущие заказы». Я хочу нажать на это автоматически, но не смог.
Когда я наведу курсор мыши на этот текст на веб-сайте (Все предыдущие заказы), https://www.websitename.com/acount/previous_orders появится в нижнем углу страницы. Мне нужно найти и щелкнуть ссылку, или может быть другое решение, чтобы щелкнуть этот текст.
Ответ №1:
Посмотрим, сработает ли это:-
previousOrder = driver.find_element_by_xpath("//a[text()='All Previous Orders']")
driver.execute_script("arguments[0].scrollIntoView(true);",previousOrder)
previousOrder.click()
Комментарии:
1. Программа выдает ошибку с именем ElementClickInterceptedException. Выше код только прокручивает окно вниз
2. Исключение ElementClickInterceptedException: щелчок элемента перехвачен: Элемент <класс=»показать все» href=»/acount/предыдущие заказы» данные-yslinktracking=»главная страница:предыдущие заказы:все_превосходные заказы»>… </a> не доступен для клика в точке (697, 6). Другой элемент получит щелчок: <div class=»строка»>…<div class=»строка»></div>
Ответ №2:
Если вы предпочитаете CSS вместо XPATH, вы можете использовать приведенный ниже css_selector :
a[href='/acount/previous_orders']
и нажмите на него вот так :
ActionChains(driver).move_to_element(WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "a[href='/acount/previous_orders']")))
).click().perform()
Импорт :
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.action_chains import ActionChains
Комментарии:
1. Я получаю ошибку с именем TimeoutException Я попробовал как 10 секунд, так и 20 секунд цепочки действий(драйвер).move_to_element(WebDriverWait(драйвер, 10 или 20).до тех пор, пока(EC.element_to_be_clickable((По.CSS_SELECTOR, «a[href=’/acount/предыдущие заказы’]»)))). нажмите().выполните()
2. где этот элемент присутствует в пользовательском интерфейсе ?
3. этот элемент доступен в виде текста в нижней части окна «Мои заказы», но когда это окно открывается, в окне предварительного просмотра отображаются тексты об названиях ресторанов, которые были помещены на мышь. Окно предварительного просмотра может помешать процессу щелчка
4. Могу я получить URL-адрес ?
Ответ №3:
код сработал:
driver.execute_script("window.scrollTo(0, 300)") #move the area
order= driver.find_element_by_xpath("//a[text()='All Previous Orders']")
order.click()