1

Seleniumにループを正しく実行させることができません。それは問題なく最初に実行されますが、起動時にプログラムへの2番目のループはエラーメッセージなしで実行を停止します。私はFirefoxのブラウザでこれを試みると同じ結果を得ます。たぶん、すでに実行中のブラウザインスタンスを起動しようとしているのですか?どんな助けでも大歓迎です。ありがとうございました!Seleniumはforループ(PythonとChrome)の新しいURLを開けません

def bookroom(self): 
sessionrooms=["611", "618"] #the list being used by the for loop 
     driver = webdriver.Firefox() 
     #for loop trying each room 
     for rooms in sessionrooms: 
      room=roomoptions[rooms][0] 
      sidenum=roomoptions[rooms][1] 
      bookingurl="https://coparooms.newschool.edu/copa-scheduler/Web/reservation.php?rid="+room+"&sid="+sidenum+"&rd="+self.startdate 
      driver.get(bookingurl) 
      time.sleep(3) 
      usernamefield = driver.find_element_by_id("email") 
      usernamefield.send_keys(self.username) 
      passwordfield = driver.find_element_by_id("password") 
      passwordfield.send_keys(self.password) 
      passwordfield.send_keys(Keys.RETURN) 
      time.sleep(5) 
      begin=Select(driver.find_element_by_name("beginPeriod")) 
      print(self.starttime) 
      begin.select_by_visible_text(convertarmy(self.starttime)) 
      end=Select(driver.find_element_by_name("endPeriod")) 
      end.select_by_visible_text(convertarmy(self.endtime)) 
creates=driver.find_element_by_xpath("//button[contains(.,'Create')]") 
      creates.click() #clicks the confirm button 
      time.sleep(8) 
      xpathtest=driver.find_element_by_id("result").text 
      #if statement checks if creation was a success. If it is, exit the browser. 
      if "success" in xpathtest or "Success" in xpathtest: 
       print "Success!" 
       driver.exit() 
      else: 
       print "Failure" 
       time.sleep(2) 
      #if creation was not success try the next room in sessionrooms 

更新: が問題を見つけ、それが不均等間隔だけの問題でした。ループの一部だけが「ループ中」でした。みんな助けてくれてありがとう!

+0

を起動せずに、ループの次の反復でそれを使用しているとあなたが、ここにあなたのループから抜け出すことになるでしょうが、あなたはあなたをダウントリミングすることができますそれを再現するコードですか?多分リダイレクトしようとするループでしょうか?私はこのコードがあなたが抱えている問題に関連しているかどうかはわかりません。 – TankorSmash

+0

よろしいですか!今はできませんが、後で家に帰るとやります。 –

答えて

0
if "success" in xpathtest or "Success" in xpathtest: 
    print "Success!" 
    driver.exit() 

ドライバを閉じますが、新しいドライバオブジェクト

+0

if文にブレークを入れようとすると、コンソールはループのコンテキスト外でブレークを使用していると私に伝えます –

関連する問題