2016-06-22 13 views
0

私はflipkartページの "カートに入れる"をクリックしてカートに商品を追加しようとしました。ここでxpathを使用してSelenium Webdriverの要素を見つけることができません

は、以下のHTMLコードです:

<input type="submit" class="btn-buy-now btn-big current xh-highlight" data-buy-listing-id="LSTWATE8VGKTHD9HMJBFJKNBI" data-listing-metrics="TO_BE_IMPLEMENTED" data-seller-id="r7wrdtz4dsn1nm0k" data-pid="WATE8VGKTHD9HMJB" data-vertical="watch" data-disable-cart="true" data-is-large="false" data-is-in-cart="false" data-is-pin-serviceable="true" data-is-pin-available="false" data-is-listing-buyable="true" value="Add to Cart"> 

私は2種類の方法で自分のXPathをカスタマイズした:value属性を選択することで

  1. //*[@value='Add to Cart']

  2. を横断することによりタグ名:.//*[@class='product new-branding']/div/div[4]/div/div[7]/div/div[3]/div/div/div[5]/div/div[2]/div/div/div[2]/div/div/form/input[8]

何も問題ありません。

Exception in thread "main" org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@class='btn-buy-now btn-big current xh-highlight']"} 

注:上記の2通りの方法で行っています。私はこれを試み、それが働いた

public class flipkart { 
    public static void main(String[] args) { 
     System.setProperty("webdriver.chrome.driver", "C:\\Users\\NIVEDA_B\\Desktop\\chromedriver.exe"); 
      WebDriver driver=new ChromeDriver(); 
    driver.get("http://www.flipkart.com/britex-bt3106-octane-ultimate-chronograph-pattern-analog-watch-boys-men/p/itme8vgk7fpzxrrq?pid=WATE8VGKTHD9HMJB&al=ij0R90nZ4Ylmh5ZtBuTS38ldugMWZuE7Phn6Yd2VMSJ4UT8n2g9QLXDX%2Bt6tGNzYWbjBKAf9tCc%3D&offer=nb%3Amp%3A0511b3c322&ref=L%3A-5467549183610437135&srno=b_4&findingMethod=Deals%20of%20the%20Day&otracker=hp_omu_Deals%20of%20the%20Day_3_3649a958-7a27-4c8b-b7d2-f6f05ab49a8e_0"); 
      driver.findElement(By.xpath("//*[@class='btn-buy-now btn-big current xh-highlight']")).click(); 
    //driver.findElement(By.xpath("//*[@class='product new-branding']/div/div[4]/div/div[7]/div/div[3]/div/div/div[5]/div/div[2]/div/div/div[2]/div/div/form/input[8]/")).click(); 
     driver.findElement(By.xpath("//*[@value='Add to Cart']")).click();   
    }   
} 
+0

HTMLコードがある Nivi

+0

すべて*適切に、あなたのコードを固定し、それをインデントし、適切に書式設定数分を過ごしてください。 *コードとしてのコード。あなたは目立つようにエラーメッセージをコードとして整形し、より読みやすくすることもできます。 – JeffC

+1

まず、要素にhtmlを指定します。私はあなたがこのようにxpathを使うことができると思います: './/* [contains(@ class、 'btn-cart')]'。クラスが変化していることを覚えておいてください。おそらくボタンが常にアクティブであるとは限りません。 2番目のことは、 '' div/div [2]/div [666]/span [99]/div [69] 'のような自動生成されたxpathを使わないで、週には動作しません。彼らはどのように動作する必要があります – kotoj

答えて

0

:私はタグ名ここ

次のコードは、あるを横断によってXPathを作成した行をコメントアウト。 [カートに追加]をクリックしてから[カート]ボタンをクリックするまで、一時停止する必要があります。

driver.findElement(By.partialLinkText("CART")).click(); 
関連する問題