1
私は、セレニウムとPythonを使用して角ウェブアプリケーションをテストしています。私のテストでは、API呼び出しを使っていくつかのデータを設定しています。今私はテストに進む前にデータがフロントエンドに現れるまで待っています。私たちは現在、この問題を克服するために60秒待っています。しかし、私は賢く待機を期待し、次のコードを書いた:私のテストスクリプトでWebDriverWait.untilのカスタムサブルーチンがエラーをスローする
def wait_for_plan_to_appear(self,driver,plan_locator):
plan_name_element = UNDEF
try:
self.navigateToPlanPage()
plan_name_element = driver.find_element_by_xpath(plan_locator)
except NoSuchElementException:
pass
return plan_name_element
def find_plan_name_element(self,plan_id):
plan_locator = '//*[@data-hraf-id="'+plan_id+'-plan-name"]'
plan_name_element = UNDEF
try:
plan_name_element = WebDriverWait(self.driver,60,2).until(self.wait_for_plan_to_appear(self.driver,plan_locator))
except TimeoutException:
self.logger.debug("Could not find the plan with plan_id = "+plan_id)
return plan_name_element
を、私が呼び出しています:
self.find_plan_name_element('e7fa25a5-0b39-4a97-b99f-44c48439ce99') # the long string is the plan-id
をしかし、私はこのコードを実行すると - 私は次のエラーを取得します:
error: 'int' object is not callable"
私はそれがboolean型を返すようにwait_for_plan_to_appearを変更した場合、それはエラーがスローされます。
error: 'bool' object is not callable"
誰かがこれを自分の仕事で見た/解決しましたか?ありがとう
ありがとうフロラン。しかし、(.format()の使用について)提案した変更を行いましたが、私はまだ同じエラーが発生しています。 EC.visibility_of_element_locatedを使用することはできません。なぜなら、要素がリストに表示されるかどうかを確認する前に、毎回ページを更新する必要があるからです。 ECを使用して要素の可視性をチェックする前に、ページの更新を強制する方法はありますか? ECを使用すると、このエラーは消えます。しかし、それは私の問題を解決しません。なぜなら、ページが最初にナビゲートされ、いくつかのページリフレッシュが必要なときに、要素が初めて利用できないことがあるからです。 –