2016-08-16 216 views
0

我正在练习硒鼠标悬停和使用网站 - http://www.flipkart.com,我从“电子”菜单中选择“三星”。下面是我的代码,但即使xpaths正确,它也不起作用。Selenium:无法找到元素

@CacheLookup 
@FindBy(xpath="//a[@data-tracking-id='electronics']") WebElement Electronics_Menu; 
@CacheLookup 
@FindBy(xpath=".//*[@id='menu-electronics-tab-0-content']//a[text()='Samsung']") WebElement Samsung_Mobile_Click; 

Actions act = new Actions(driver); 
act.moveToElement(Electronics_Menu).perform(); 
act.click(Samsung_Mobile_Click).build().perform(); 

这是我的错误,当我运行代码:

org.openqa.selenium.NoSuchElementException: Unable to locate element: {"method":"xpath","selector":".//*[@id='menu-electronics-tab-0-content']//a[text()='Samsung']"} 
Command duration or timeout: 27.04 seconds 
+0

试试这个'XPath':'// a [@ title =“Samsung”]' – Andersson

+0

Thanks !!它的工作:) – Bimlesh

回答

0

试试三星的XPath在下面的代码中给出的一个,它为我工作。

public class FlipK { 

    WebDriver driver; 

    @CacheLookup 
    @FindBy(xpath="//a[@data-tracking-id='electronics']") 
    WebElement Electronics_Menu; 

    @CacheLookup 
    @FindBy(xpath=".//*[@id='container']/div/header/div[2]/div/ul/li[1]/ul/li/ul/li[1]/ul/li[2]/a/span[1]") 
    WebElement Samsung_Mobile_Click; 

    @Test 
    public void f() throws InterruptedException { 

    driver = new FirefoxDriver(); 
    driver.get("https://www.flipkart.com/#"); 
    driver.manage().window().maximize(); 
    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); 

    PageFactory.initElements(driver, this); 

    Actions act = new Actions(driver); 
    act.moveToElement(Electronics_Menu).perform(); 
    Thread.sleep(2000); 
    Samsung_Mobile_Click.click(); 
    } 
} 
+0

嗨prashanth,并欢迎堆栈溢出。我已经编辑了您的问题,使用markdown标记标记出您的代码;这很重要,否则无法读取代码。 –

+0

谢谢文斯。我很感激! – prashanth