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
更新: が問題を見つけ、それが不均等間隔だけの問題でした。ループの一部だけが「ループ中」でした。みんな助けてくれてありがとう!
を起動せずに、ループの次の反復でそれを使用しているとあなたが、ここにあなたのループから抜け出すことになるでしょうが、あなたはあなたをダウントリミングすることができますそれを再現するコードですか?多分リダイレクトしようとするループでしょうか?私はこのコードがあなたが抱えている問題に関連しているかどうかはわかりません。 – TankorSmash
よろしいですか!今はできませんが、後で家に帰るとやります。 –