0

Selenium Web ドライバーでの自動テスト用に Selenium IDE コードをエクスポートします。コードは正しく実行されますが、ラジオ ボタンで停止し、Selenium Webdriver でエラーが発生します。webdriverでラジオボタンを正常に実行するように教えてください。

私のコードは次のとおりです。

driver.FindElement(By.Id("ContentPlaceHolder1_ucTriple_rptOffers_AddToCartButton_0")).Click();

            System.Threading.Thread.Sleep(20000);  
            driver.FindElement(By.Id("rptShoppingServiceGroup_dlAddons_1_ctl03_0_1_0")).Click();
            driver.FindElement(By.Id("rptShoppingServiceGroup_dlAddons_1_ctl03_1_3_1")).Click();
            driver.FindElement(By.Id("rptShoppingServiceGroup_dlDevices_1_ctl03_0_1_0")).Click();
            driver.FindElement(By.Id("rptShoppingServiceGroup_dlAddons_2_ctl01_2")).Click();
            driver.FindElement(By.Id("rptShoppingServiceGroup_dlDevices_2_ctl03_0_2_0")).Click();
            driver.FindElement(By.Id("rptShoppingServiceGroup_dlDevices_2_ctl03_0_0_0")).Click();
            driver.FindElement(By.Id("SubmitButton")).Click();

見つかったエラーは次のとおりです。

Unable to locate element: {"method":"id","selector":"rptShoppingServiceGroup_dlAddons_1_ctl03_0_1_0"}

そこからエラーを取り除き、正常に実行する方法。

4

2 に答える 2

0

ページのラジオ ボタンが動的に生成されているようです。次に、エラーの原因として次の 2 つが考えられます。

  • クリックしようとしても、ラジオは存在しません。そのラジオ ボタンを表示する前の手順を実行したことを確認してください。
  • 生成されたラジオ ボタンの名前は異なります (名前の数字は異なる場合があります)。正確な ID の代わりに xpath を使用して選択してみてください。

私の提案は、選択命令なしでコードを実行し、ドライバーを終了しない (つまり、ブラウザーを閉じない) ことです。これにより、結果のページを調べて、ラジオ ボタンが表示されているかどうか、およびその実際の名前を確認できます。

于 2013-05-17T11:26:29.410 に答える