Случайный щелчок, чтобы сохранить сеанс селена python

Как мне сделать случайный щелчок где-нибудь на странице через n секунд, чтобы сохранить сеанс при использовании селена? Идет очистка, если мы ничего не сделаем, сеанс будет отключен. Есть ли другой способ сделать какую-то активность/поддержать сеанс?

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import time
import json
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.common.exceptions import TimeoutException


options = Options()
options.add_argument("user-data-dir=C:\\Users\\user\\AppData\\Local\\Google\\Chrome\\User Data")
driver = webdriver.Chrome(executable_path='C:/chromedriver.exe', options=options)
driver.maximize_window()
driver.get('URL')
time.sleep(15)
def find_button():
    driver.switch_to.frame(driver.find_element_by_xpath("//*[@id=\"root\"]/main/div[1]/div/div/section/div[1]/div/iframe"))
    try:
        button = WebDriverWait(driver, 15).until(EC.element_to_be_clickable((By.XPATH, '/html/body/div[1]/div[2]/div/div/div/div[3]/button')))
        if button:
            button.click()
    except TimeoutException as e:
        pass
    WebDriverWait(driver, 15).until(EC.element_to_be_clickable((By.CSS_SELECTOR,'#root > div.css-1dskt1c.ev4oou50 > main > div.css-fxcew.eqhy1wt0 > div.css-1o0ko6s.ejzudwb1 > div.css-wp7h99.ebewhpb0 > section.css-n56t2b.e1bk88wc2 > header > div.css-8hdyh3.esmanvo0 > svg'))).click()
    while True:
        info = driver.find_element_by_css_selector('#root > div.css-1dskt1c.ev4oou50 > main > div.css-fxcew.eqhy1wt0 > div.css-1o0ko6s.ejzudwb1 > div.css-wp7h99.ebewhpb0 > section.css-conr1v.e1bk88wc2 > div > div > div.css-1t6u4d1.ezcyhjn1 > div.css-r8tf41.eyg06i70')
        result = info.text
        result = result.replace('\n', ' ')
        time.sleep(5)
        dictionary = {"1st 12": result[6:22], "2nd 12": result[30:46]}
        json_dump = json.dumps(dictionary)
        print(json_dump)

find_button()
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
0
1 428
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Чтобы выполнить щелчок с помощью селена, вы можете выполнить следующие два шага. Когда ваша программа запускается, создайте поток или другой процесс, который продолжает щелкать каждые n секунд. Вы можете легко сделать это, используя модуль потоковой обработки Python или модуль многопроцессорности.

element = driver.find_element_by_id("myelement")
element.click()

Хотя другим предложением было бы использовать безголовый при использовании селена.

Только один вопрос. Я попробовал это, чтобы закрыть повторяющееся всплывающее окно. Когда я вызываю 2 функции с помощью Threading... открывается новое хромированное окно... Как об этом позаботиться?

Abhishek Rai 14.12.2020 08:10

Я все еще занимаюсь отладкой, поэтому мне нужно посмотреть, что происходит, но как --headless поможет?

Abhishek Rai 14.12.2020 08:21

@AbhishekRai Попробуйте передать тот же экземпляр объекта, что и объект, в другой поток. В случае, если это не работает, попробуйте портировать его на многопроцессорность из многопоточности. Также было бы очень полезно, если бы мы могли взглянуть на код. Так как трудно рекомендовать, основываясь только на текстовом описании. Не могли бы вы также поделиться кодом.

Tanishq Vyas 14.12.2020 09:11

позвольте мне сделать это.

Abhishek Rai 14.12.2020 09:21

. Добавил код. Я попытался заставить кнопку щелкнуть другую функцию и очистить другую и вызвать их с помощью If main ..Thread target = find_button и т. д. Однако сработала только 1-я функция, вторая открыла новое окно, не зная, что делать, потому что Я предполагал, что driver будет на той же странице. Думаю, это не так.

Abhishek Rai 14.12.2020 09:24

@AbhishekRai, не могли бы вы поделиться полным кодом, пожалуйста. Таким образом, я мог скопировать и запустить его на своей машине и попытаться отладить.

Tanishq Vyas 14.12.2020 11:31

Другие вопросы по теме