Python/Selenium заставляет скрипт вернуться в цикл, если ввод не удался, и повторить попыткуHtml

Программисты Html
Ответить
Anonymous
 Python/Selenium заставляет скрипт вернуться в цикл, если ввод не удался, и повторить попытку

Сообщение Anonymous »

Я написал «бота», который нажимает на кнопку, но это не так просто.
Как только бот нажимает на кнопку, появляется второй, и бот нажимает на него, но затем срабатывает таймер, и «первая» кнопка все еще там, но не вторая (она появится снова, когда таймер остановится). Я хочу, чтобы код продолжал выполнять процесс нажатия обеих кнопок, даже если есть таймер и программа не может найти путь к второй кнопке. (Код, возвращаясь назад, ищет вторую кнопку, но не находит ее, поэтому выводит ошибку:)


Traceback (most recent call last):
File "C:\Users\fkahd\PycharmProjects\bot\bot.py", line 19, in
submit2 = driver.find_element(By.XPATH, "/html/body/div[4]/div[6]/div/div/div[1]/div/form/button").click()
File "C:\Users\fkahd\PycharmProjects\bot\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 1244, in find_element
return self.execute(Command.FIND_ELEMENT, {
File "C:\Users\fkahd\PycharmProjects\bot\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 424, in execute
self.error_handler.check_response(response)
File "C:\Users\fkahd\PycharmProjects\bot\venv\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 247, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[4]/div[6]/div/div/div[1]/div/form/button"}
(Session info: chrome=98.0.4758.82)
Stacktrace:
Backtrace:
Ordinal0 [0x01067AC3+2587331]
Ordinal0 [0x00FFADD1+2141649]
Ordinal0 [0x00EF3BB8+1063864]
Ordinal0 [0x00F201CE+1245646]
Ordinal0 [0x00F203CB+1246155]
Ordinal0 [0x00F4A612+1418770]
Ordinal0 [0x00F386D4+1345236]
Ordinal0 [0x00F48A0A+1411594]
Ordinal0 [0x00F384A6+1344678]
Ordinal0 [0x00F153F6+1201142]
Ordinal0 [0x00F162E6+1204966]
GetHandleVerifier [0x0120DF22+1680738]
GetHandleVerifier [0x012C0DBC+2413564]
GetHandleVerifier [0x010FD151+563089]
GetHandleVerifier [0x010FBF13+558419]
Ordinal0 [0x0100081E+2164766]
Ordinal0 [0x01005508+2184456]
Ordinal0 [0x01005650+2184784]
Ordinal0 [0x0100F5BC+2225596]
BaseThreadInitThunk [0x771FFA29+25]
RtlGetAppContainerNamedObjectPath [0x77357A9E+286]
RtlGetAppContainerNamedObjectPath [0x77357A6E+238]

Process finished with exit code 1



Поэтому я закодировал исключение с try: и кроме:, чтобы он возвращался на домашнюю страницу и возвращался к кнопке, если есть ошибка, но затем код останавливается. Но я хочу, чтобы он оставался в цикле и продолжал пытаться нажимать кнопки.
Если вы более продвинуты, есть ли способ прочитать таймер и попробовать еще раз, как только оно достигнет определенного значения? Таймер HTML:


clearInterval(cltimer);
var et88e8a9cbc190762b = 420
function updatetimer() {
var ogqsbud75e2aaab9a29662 = Math.round((et88e8a9cbc190762b - 30)/60);
var lzrdp0381a = et88e8a9cbc190762b % 60;
if (lzrdp0381a < 10) {
lzrdp0381a = '0' + lzrdp0381a;
}
$('#aqzcfpledc4ad').html('Please wait ' + ogqsbud75e2aaab9a29662 + ' minute(s) ' + lzrdp0381a + ' seconds for your next submit!');
if (et88e8a9cbc190762b

Подробнее здесь: https://stackoverflow.com/questions/710 ... -try-again
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Html»