2016-06-22 5 views
0

나는 flipkart 페이지에서 "장바구니에 담기"를 클릭하여 장바구니에 제품을 추가하려고 시도했습니다.xpath를 사용하여 Selenium Webdriver에서 요소를 찾을 수 없습니다.

<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='Add to Cart']

  • : value 속성을 선택하여

    1. 여기

      다음과 같은 HTML 코드 tagnames : .//*[@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']"} 
    

    참고 : 위에서 설명한 두 가지 방법으로 수행했습니다. 난 그냥이 시도하고 일

    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')]'. 클래스가 변경되고 있음을 기억하십시오. 버튼이 항상 '활성 상태'는 아닙니다. 두번째로,'/ div/div [2]/div [666]/span [99]/div [69]'와 같은 자동 생성 된 xpath를 사용하지 마십시오. 일주일에 작동하지 않을 것입니다. 그들이 어떻게 작동해야합니까 – kotoj

    답변

    0

    : 나는이 tagnames 여기

    다음 코드는 통해 통과하여 XPath를 만든 라인을 주석. 장바구니에 담기를 클릭하고 카트 버튼을 클릭하는 사이에 일시 중지해야합니다.

    driver.findElement(By.partialLinkText("CART")).click(); 
    
    관련 문제