2016-07-01 1 views
0

Проблемыинкремент, когда не в цикл - Python

Я пытаюсь написать скрипт, который записывает несколько скриншотов, но у меня возникают проблемы именования моего файла.


Попробуйте

Я пытаюсь парафировать мой i=0 и увеличить его, как я иду.

Я продолжал получать 1 на всех из них.

Мое изображение заменяется во время сохранения, и все, что я получил в конце, это 1.png.

Я полагаю, что у них 16 из них.


Код

i = 0 
    driver = self.driver 
    driver.set_window_size(1920, 1080) 
    driver.get(self.base_url + "/") 
    driver.save_screenshot(today+'/admin/'+str(i+=1)+'.png') 
    driver.find_element_by_id("username").send_keys("[email protected]") 
    driver.find_element_by_id("password").send_keys("admin") 
    driver.find_element_by_xpath("//button[@type='submit']").click() 
    driver.save_screenshot(today+'/admin/'+str(i+=1)+'.png') 
    time.sleep(5) 
    driver.save_screenshot(today+'/admin/'+str(i+=1)+'.png') 
    driver.get(self.base_url + "/account") 
    driver.save_screenshot(today+'/admin/'+str(i+=1)+'.png') 
    driver.find_element_by_link_text("Create").click() 
    time.sleep(1) 
    driver.save_screenshot(today+'/admin/'+str(i+=1)+'.png') 
    driver.find_element_by_link_text("Cancel").click() 
    time.sleep(1) 
    driver.save_screenshot(today+'/admin/'+str(i+=1)+'.png') 
    driver.find_element_by_css_selector("i.fa.fa-trash-o").click() 
    driver.find_element_by_link_text("Got it").click() 
    driver.save_screenshot(today+'/admin/'+str(i+=1)+'.png') 
    driver.get(self.base_url + "/account/1002") 
    time.sleep(2) 
    driver.save_screenshot(today+'/admin/'+str(i+=1)+'.png') 
    driver.get(self.base_url + "/access-point") 
    driver.save_screenshot(today+'/admin/0.png') 
    driver.get(self.base_url + "/access-point/000D6751560C") 
    driver.save_screenshot(today+'/admin/'+str(i+=1)+'.png') 
    driver.get(self.base_url + "/access-point/000D6751560C/08002785112C") 
    driver.save_screenshot(today+'/admin/'+str(i+=1)+'.png') 
    driver.get(self.base_url + "/captive-portal/admin") 
    driver.save_screenshot(today+'/admin/'+str(i+=1)+'.png') 
    driver.get(self.base_url + "/cloud-security") 
    driver.save_screenshot(today+'/admin/'+str(i+=1)+'.png') 
    driver.get(self.base_url + "/setting/mirroring") 
    driver.save_screenshot(today+'/admin/'+str(i+=1)+'.png') 
    driver.get(self.base_url + "/profile") 
    driver.save_screenshot(today+'/admin/'+str(i+=1)+'.png') 
+0

Я сомневаюсь, что ваш код даже выполняется. Ваша 'str (i + = 1)' должна поднять SyntaxError. 'i + = 1' - это команда назначения, а не выражение. – wap26

ответ

2

Вы не задерживая в i. Следовательно, i всегда 0.
После сохранения снимка экрана вам необходимо увеличить i.

driver.save_screenshot(today+'/admin/'+str(i+1)+'.png') 
i += 1 

Не знаете, как ваш код депортирован, поэтому я даю действительно базовую отправную точку.
Вы можете сделать что-то вроде этого. Предполагается, что today находится в доступном объеме.

def save_screenshot_with_increment(): #these parameters normally depends on your design 
    global i 
    driver.save_screenshot(today+'/admin/'+str(i+1)+'.png') 
    i += 1 

Теперь вместо вызова driver.save_screenshot, вы можете позвонить save_screenshot_with_increment

driver.get(self.base_url + "/cloud-security") 
save_screenshot_with_increment() 
+0

Должен ли я держать это добавление этой строки все время 'i + = 1'? – ihue

+0

Да, иначе 'i' не изменит значение. – Ian

+1

Да, если вы хотите увеличить его после сохранения вашего снимка экрана каждый раз –

0

вам нужно увеличивать Ценю для каждой итерации. например i=i+1

если нет, то значение i будет одинаковым для каждой итерации. i.e 1. Вот почему каждый раз, когда вы получаете 1.png

+0

Я пробовал использовать 'i + = 1' - все тот же результат. – ihue

+0

Я думаю, str (i + = 1). дает вам SyntaxError: недопустимый синтаксис – vinod

+0

вы не используете цикл для чего-то вроде 'for i in range (0,16): print (str (i) +". png ")' – vinod

Смежные вопросы