Автоматизация действий на сайте с помощью Selenium
Есть браузерная игрушка. Решил немного автоматизировать для себя кое-какие процессы ) Вопрос в следующем. Пишу скрипт на python с использованием selenium вот он :
#import driver as driver
from selenium import webdriver
from selenium.webdriver.firefox.options import Options
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.remote.webelement import WebElement
from selenium.webdriver.support.ui import WebDriverWait as wait
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import StaleElementReferenceException
import time
driver = webdriver.Firefox()
#Скрываем браузер
#driver.set_window_position(2000,2000)
driver.get("http://last-dwar.com/")
#Разворачиваем браузер на весь экран
driver.maximize_window()
#time.sleep(3)
# кнопка "ВХОД" на странице авторизации
button = driver.find_element(By.XPATH, '/html/body/header/div/div[2]/div[2]/div/a')
try:
WebDriverWait(driver, 10).until(EC.element_to_be_clickable(button))
button.click()
except TimeoutException:
print("Страница не отвечает")
time.sleep(3)
# Учетные данные
username = driver.find_element(By.XPATH, '/html/body/div[3]/form/div[1]/input')
username.send_keys("******")
password = driver.find_element(By.XPATH, '/html/body/div[3]/form/div[2]/input')
password.send_keys("********")
# Нажимаем кнопку войти на странице авторизации
button = driver.find_element(By.XPATH, '/html/body/div[3]/form/div[3]/button')
try:
WebDriverWait(driver, 10).until(EC.element_to_be_clickable(button))
button.click()
except TimeoutException:
print("Страница не отвечает")
time.sleep(3)
# Переходим в "Охота"
hunter = driver.find_element(By.XPATH,
'/html/body/table/tbody/tr[2]/td/table/tbody/tr/td[2]/div')
try:
WebDriverWait(driver, 10).until(EC.element_to_be_clickable(hunter))
hunter.click()
except TimeoutException:
print("Страница не отвечает")
#driver.close()
На данный момент скрипт работает и открывает главную страницу. Сверху есть "Кнопки". Но при использовании ее fullXPATH , код выдает ошибку, что элемент не обнаружен на странице. Думаю, что дело тут в javascript и "нажать" эту кнопку можно другим способом. Подскажите как это сделать...
Источник: Stack Overflow на русском