from selenium import webdriver from selenium.webdriver.common.keys import Keys 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 import time def main(): driver = webdriver.Chrome() driver.maximize_window() driver.get("https://site.ru/") btn_elem1 = driver.find_element_by_xpath("/html/body/div[2]/div[3]/div[2]/div[1]/div/ul/li[2]") btn_elem1.click() btn_elem2 = driver.find_element_by_xpath("/html/body/div[2]/div[3]/div[2]/div[1]/div/div[2]/div/p[1]/label/input") btn_elem2.click() btn_elem2.send_keys("login") btn_elem3 = driver.find_element_by_xpath("/html/body/div[2]/div[3]/div[2]/div[1]/div/div[2]/div/p[2]/label/input") btn_elem3.click() btn_elem3.send_keys("pass") btn_elem4 = driver.find_element_by_xpath("/html/body/div[2]/div[3]/div[2]/div[1]/div/div[2]/div/a") btn_elem4.click() time.sleep(1) driver.get("https://site/1") btn_elem5 = driver.find_element_by_xpath("/html/body/div[1]/div[3]/div[1]/fieldset/div[2]/img[1]") btn_elem5.click() action = ActionChains(driver) action.key_down(Keys.CONTROL).send_keys("f").key_up(Keys.CONTROL).perform() time.sleep(5) if __name__ == "__main__": main()
Всё работает до определенного момента.
Браузер открывается, расширяется. Перехожу на нужный сайт. Перехожу на вкладу Войти, ввожу логин и пароль. Перехожу на другую страницу, на которую нет доступа, если не залогинен. Открываю там спойлер со спрятанным текстом.
После чего я хочу вызвать “Найти” через Ctrl+F, но почему то не работает, не происходит ничего. И вообще так понимаю сами клавиши не работают. Как будто не добавились, хотя вроде в начале кода прописано.
И если нужный текст находится, то сделать скриншот и перейти на https://site/2, если нет, то сразу перейти на site/2 и провести там поиск. Всего там порядка десятка тысяч страниц, вероятно адрес станицы надо как-то через переменную сделать? И что-то вроде через ++ как в PHP сделать, типо плюс один, чтобы прибавлялось каждый раз?
Или быть может как-то по другому можно это сделать? Поиск обычного текста по всей странице. И если есть, то скриншот и переход дальше, если нет, то сразу переход дальше. (Звёздочка вызывает скриншот)
sila = driver.find_element_by_xpath("/html")
if 'Селява' in sila.text:
action.send_keys("*")
action.key_down(Keys.CONTROL).send_keys("s").key_up(Keys.CONTROL).perform()
driver.get("https://site/+1id") (вот как это сделать?)
else:
driver.get("https://site/+1id") (вот как это сделать?)Проблемы две осталось в общем-то. Это как найти текст и как заставить перейти на страницу следующего id.
Буду очень благодарен за любую помощь.