2017-05-26 10 views
0
automationpractice.comに自動化しながら、 ステップ

を使用しながら、本部内の要素は、クロムでポップアップマーク-s /カラー、オレンジ、以下の」 2. 『カートに入れる』ボタン 3.ポップアップを成功裏カートに追加するにはCan`tセレンオートメーション

今、私は、このポップアップ内の任意の要素をマークすることはできません(スクリーンショット下記をご参照ください)を表示しました。私はXPathを試しましたが、それはDivタグ付きの親ウィンドウ内にありますが、エラーはElementNotVisibleです。私はdriver.getWindowHandles()で試してみましたが、1つのウィンドウしか存在しないことを示しています(親ウィンドウ)。 alertでも試しましたが、アラートが存在しないと表示されます。

この問題はChromeブラウザでのみ発生します.Firefoxの場合、Divタグ付きの親ウィンドウ内でxpathを使用するとうまく動作します。

以下は私が試したスクリプトです、誰でも親切にこれを助けることができますか?前もって感謝します!

このポップ・アップのためのxpathが"//*[@id="layer_cart"]/div[2]"

Set<String> windows = wd.getWindowHandles(); 
System.out.println("windows.size():"+ windows.size()); // the result is 1 
このページには、新しいウィンドウまたはアラートはありません

enter image description here

+0

最初の印象は、あなたのxpathが起立。再度確認してください。また、検索する要素を指定する必要があります。これはポップアップでもアラートやウィンドウでもないので、ここでは動作しません。 – demouser123

+0

ありがとうございました。なぜポップアップが見えないのかわからないので、上記の手順とスクリーンショットを参照してください。例えばチェックアウトボタンに進むには、XPathは// * [@ id = "layer_cart"]/div [1]/div [2]/div [4]/a/spanです。同じXPathがFirefoxで動作します。 – Nancy

答えて

0

である、唯一の問題は、あなたのXPATHのcotains "代わり'のは、ALO必要が待つことですその要素が表示されるまでに数秒かかる場合があります。

WebDriver driver = new ChromeDriver(); 
    driver.get("http://automationpractice.com/index.php?id_product=2&controller=product"); 

    driver.findElement(By.xpath("//form[@id='buy_block']//p[@id='add_to_cart']")).click(); 

    WebDriverWait wait = new WebDriverWait(driver, 20); 

    wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//*[@id='blockcart_caroucel']/li[1]"))); 
    driver.findElement(By.xpath("//*[@id='blockcart_caroucel']/li[1]")).click(); 
+0

Kushalありがとうございました。クリックするとポップアップが表示されるはずです。商品詳細ページでカートに入れる上記のスクリーンショットを参照することができます。 XPathには「他のXPathも含まれているので問題はない」とは思えません。また、要素をマークする前に暗黙の待機を追加します。 – Nancy