2016-04-11 6 views
-1
def take_all_screenshots(self): 
Base_URL = "URL HERE" 
pages = ['urlhere1', 
      'urlhere2', 
      'urlhere3', 
      ] 

for page in pages: 
    self.driver.get(Base_URL + page) 
    pagename = "%s" %str(page) 
    name = pagename + str(datetime.datetime.now()) + '.png' 
    self.driver.save_screenshot('screenshots/%s' % name) 

Wie kann ich die URL aus der Liste greifen, um den Namen des Screenshots hinzuzufügen? Derzeit ergreift es nur die erste, bitte helfen!Wie kann ich einen Wert aus einer Liste abrufen? Python und Selen

+0

Ich möchte die Bildschirmnamen zurückzukehren komm raus als "urlhere1 + datetime.png" –

+0

was ist deine aktuelle Ausgabe? –

+0

Es dauert nur ein Screenshot der ersten URL –

Antwort

1

Hallo Automation Enthusiast,

Um ein Element aus einer Liste zu erhalten, verwenden listname[index]. Beachten Sie, dass Indizes bei 0 beginnen und um 1 zählen.

Verwenden Sie zum Verketten von zwei Strings string1 + string2.

Um den Dateinamen in das Ergebnis zu ändern, verwenden Sie os.rename("original/filename/and/file.path","new/filename/and/file.path").

Hope this, BoxTechy

+0

Wie kann ich jede Seite beim Durchlauf durch die Schleife packen? name = str (pages [0]) + str (datetime.datetime.now()) + '.png' –

+0

@AutomationEnthusiast Sie können sowohl Variablen als auch ganze Zahlen verwenden. Probieren Sie stattdessen Seiten [Seite]. – BoxTechy

+0

Seiten [Seite] TypeError: Listenindizes müssen ganze Zahlen sein, nicht str –

0

Wenn die Schleife im gleichen Umfang hilft könnten Sie versuchen:

def take_all_screenshots(self): 
    Base_URL = "URL HERE" 
    pages = ['urlhere1', 
      'urlhere2', 
      'urlhere3', 
      ] 

    for page in pages: 
     #Why have a getter() that returns nothing 
     #self.driver.get(Base_URL + page) 
     pagename = "%s" %str(page) 
     name = pagename + str(datetime.datetime.now()) + '.png' 
     self.driver.save_screenshot('screenshots/%s' % name) 

for page in pages: wird die richtige Position in der Liste

Verwandte Themen