Попытка использовать селен для автоматизации регистрации. Столкнуться с проблемой - PullRequest
0 голосов
/ 25 октября 2019

В настоящее время пытаюсь автоматизировать регистрацию на «mail.com» с помощью Selenium. До сих пор мне удалось заставить программу перейти по URL. У меня проблема в том, что даже когда я скопировал полный XPATH «Зарегистрироваться», я получаю:

"selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/table/tbody/tr[114]/td[2]"}"

ошибка

Вот код, с которым я работаю до сих пор:

import selenium
import time
from selenium.webdriver.common.by import By

driver = selenium.webdriver.Chrome(executable_path='pathtochromedriver')
driver.get('https://www.mail.com/')
driver.maximize_window()

# Delay added to allow elements to load on webpage
time.sleep(30)

# Find the signup element
sign_up = driver.find_element_by_xpath('/html/body/table/tbody/tr[114]/td[2]')

1 Ответ

0 голосов
/ 25 октября 2019

Попробуйте использовать ActionsChains для прокрутки, чтобы убедиться, что элемент отображается.

from selenium.webdriver.common.action_chains import ActionChains

some_page_item = driver.find_element_by_class_name('some_class')
ActionsChains(driver).move_to_element(some_page_item).click(some_page_item).perform()

Также другой совет ... вместо простого использования time.sleep () для ожидания появления элемента, вместо этого используйте WebDriverWait

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

wait_for_item = WebDriverWait(driver, 30).until(EC.presence_of_element_located((By.CLASS_NAME ,"some_class_name")))

30 - это количество секундчто он будет ждать, пока товар появится;однако, если он появится раньше, чем через 30 секунд, он немедленно продолжит выполнение. Если пройдет 30 секунд, а элемент не появится, произойдет ошибка тайм-аута.

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