4

より多くのコンテキストで更新: Selenium1には「setSpeed」というコマンドがありました。これにより、各コマンドの実行をXミリ秒遅くすることができました。Selenium 2(Webdriver)の背後にあるチームは、このコマンドを廃止することを決定しました。現在、実行中にアプリを視覚的に監視しやすい速度で実行するためにテストを遅くする方法はありません。開発者が非推奨にした理由と、implicit_waitsを使用するなどの推奨される回避策についての開発者の説明を読みましたが、それでも問題は解決しません(または他の人が非推奨について不満を言っています)。とはいえ、ユニットテストの各メソッドまたは一連のテスト全体のいずれかに適用できるグローバル実行速度を設定することで、これを回避したいと考えていました。

元の質問:コマンド間のさまざまな遅延を使用して実行したいさまざまな単体テストがあります。コマンド間でコピーアンドペーストを続けることができることは知っていtime.sleepますが、指定されたメソッドの各コマンドの前に実行されるユニバーサルスリープを設定する方法は確かにありますか?

 def test_x_test(self):
     driver = self.driver
     time.sleep(2)
     print("running the First selenium command such as click button")
     time.sleep(2)    
     print("running another Selenium command such as click link ")
     time.sleep(2)    
     self.driver.quit()

 if __name__ == '__main__':
     unittest.main()
4

1 に答える 1

1

ああ、答えは明らかです。

webdriver アクションを制御するヘルパー メソッドを作成し、アクションを実行する前に一時停止します。

以下は、職場で Python IDE にアクセスできなくなったため、疑似コード風になります。

#passing in Webdriver instance and the command we want to execute into our helper method   
webdriverHelper(driver, command):
    #this 2 second sleep will get run each time
    time.sleep(2)
    if command == "click":
        driver.getElement.click()
    elif command== "getText":
        driver.getElement.getText()
    etc...............
于 2013-11-20T05:25:49.990 に答える