#python #selenium #loops #webdriver
#python #селен #циклы #webdriver
Вопрос:
Как я могу сообщить своему коду, чтобы он не заканчивался и не начинался снова?
С 1-го try:
запуск = True во время выполнения:
f = open('list.txt', 'r', encoding='utf-8').readlines()
for word in f:
if word == "n":
continue
driver.find_element_by_xpath(Newtweet_button).click()
sleep(0.5)
driver.find_element_by_xpath(message_paste).send_keys(word)
try:
driver.find_element_by_xpath(post_tweet_xpatch).click()
sleep(1)
except (ElementClickInterceptedException):
driver.find_element_by_xpath(cross_button).click()
except (NoSuchElementException):
print("tweet not send")
driver.find_element_by_xpath(cross_button).click()
sleep(4)
else:
driver.find_element_by_xpath(close_button2).click()
sleep(4)
f.close()
Комментарии:
1. Привет, фахад, похоже, вы добавили код без отступов, будет легче ответить, если вы добавите отступ, как показано в вашем файле.
Ответ №1:
Используйте цикл while:
running = True
while running:
#your code
Это не остановится до тех пор, пока для параметра running не будет установлено значение false: running = false
Или у вас может быть количество:
count = 0
while count >= 3:
#your code
count = 1
Это заставит код выполняться 3 раза.
РЕДАКТИРОВАТЬ: чтобы закрыть ваш файл, вам не нужно читать переменную file, например, так:
with open('list.txt', 'r', encoding='utf-8') as f:
file = f.readlines()
for word in file:
if word == "n":
continue
Комментарии:
1. Пока цикл работает отлично, спасибо!
2. Но у меня есть проблема, с помощью которой я не могу закрыть свой файл f
f.close()
. Я получаю эту ошибкуf.close() AttributeError: 'list' object has no attribute 'close'
3. рад, что ваш цикл теперь работает, не могли бы вы показать мне свой код, что мешает вашему файлу закрыться? вы можете сделать это, отредактировав свой вопрос выше
4. теперь вы можете проверить
5. является ли это причиной того, что код считывает только последнюю строку текстового файла и всегда отправляет последнюю строку в качестве ключа