0

チケットを作成するためのテストを作成しました。「新しいチケット」をクリックすると、ポップアップ フォームが表示されます。タイトルと本文を入力し、[保存して新規作成] をクリックします。この時点で、ループを作成しました。i<10 の間、テストを繰り返します。最初のチケットにたどり着くことができますが、2 番目のチケットでは終了し、タイトルにエラーが表示されます。2枚目のチケットが始まるところまできましたが、テキストが間違った領域に入力されてしまい、理解できません。「タイトル」の 1 つ上のフィールドにテキストを入力します。IDに基づいたsend_keysもあります。コードは次のとおりです。

while i<2:  
            driver.implicitly_wait(10)
            title = f.name()
            driver.find_element_by_name('txtsummary')
            driver.find_element_by_name('txtsummary').send_keys(title)
            driver.find_element_by_name('txtcontactorg').send_keys('unnamed')
            body = f.name()       
            page = driver.find_elements_by_xpath('//td[@class="mceIframeContainer mceFirst mceLast"]/iframe')[1]
            page.click()
            page.send_keys(body)           
            driver.find_element_by_xpath('//span[text()="Save and New"]').click()   

暗黙の待機を削除すると、最初のテキストを保存した直後にテキストが間違ったボックスに入力されます。そのままにしておくと、10 秒待って閉じます。私の最初のチケットは常に作成され、次のチケットで失敗するよりも常に永遠にかかります。コードの最後の行である save と new では、本文を送信した直後に実行する必要があるときに、その行が実行されるまでに 8 秒ほどかかることを意味します。これが要因な気がします。

4

1 に答える 1

4

問題は、iframe を選択しているという事実に関係していると思います。iframe に入ると、再検索できません'txtsummary'

これが発生する理由は'txtsummary'、iframe をクリックするとすぐにフォーカスが存在しない場所に変更されたためです。最上位のフレーム挿入にフォーカスを戻す。

driver.switch_to_default_content()

ループの一番上にあり、ループが実行されるたびに、一番上のフレームから開始されます。

于 2013-05-22T23:55:22.740 に答える