2011-07-12 17 views
2

別の機能で別のページを開くときに、自分のselenium-pythonスクリプトに問題があります。新しいページを開くときにセレニウムスクリプトが機能を見つけることができません

機能test2_points()セレンはfunctionselectProducts_4を見つけることができません。

これは私のスクリプトです:

from selenium import selenium 
import unittest, time, re 
import socket 
import sys 

class discount_reward(unittest.TestCase): 
    def setUp(self): 
     print "setUp invoked" 
     self.port    = "4444" 
     self.ip_address   = "localhost" 
     self.browser   = "*chrome"#firefox 
     self.base_url   = "http://128.0.0.1:1062" 
     self.browser_title  = "Hammer" 
     self.verificationErrors = [] 

     try: 
      print "starting selenium with the following parameters:" 
      print "ip address: %s\nport: %s\nbrowser: %s\nbase_url: %s" %(self.ip_address, self.port, self.browser, self.base_url) 
      self.selenium = selenium(self.ip_address, self.port, self.browser, self.base_url) 
      self.selenium.start() 

     except socket.error, error: 
      print "\nSocket Exception: %s" %(error) 
      print "\nCould not connect to %s:%s with browser %s" %(self.base_url, self.port, self.browser) 
      sys.exit(1) 

    def test1_discount_reward(self): 
     sel = self.selenium 
     sel.open("/Hammer/offer-rew-discount.aspx?") 
     sel.select("functionselect", "label=Products_2") 
     sel.click("select1") 
    def test2_points_reward(self): 
     sel = self.selenium 
     sel.open("/Hammer/offer-rew-points.aspx?") 
     sel.select("functionselect", "label=Products_4") 
     sel.click("select1") 

    def tearDown(self): 
     self.selenium.stop() 
     self.assertEqual([], self.verificationErrors) 

if __name__ == "__main__": 
    unittest.main() 

誰もが間違って何を教えてもらえますか?

+0

他のテストでエラーが発生しましたか? –

答えて

1

ページのロードが完了する前に、ほぼ確実にsel.select()を実行しています。ページ遷移(、例:open()click()のリンクまたはボタンの操作)を実行する操作を実行する場合は、必ずwait_for_page_to_load(timeout_in_milliseconds)を付けてください。ページがブラウザに完全にロードされたとき、またはタイムアウトになるときに待機が終了します(これは明らかにエラー状態です)。

関連する問題