java
  • html
  • selenium
  • 2014-01-08 124 views 1 likes 
    1

    我想找到一个元素,XPath是这样硒的webdriver&findelement

    "//div[@id='contentPane']/div/div[2]/div/div[2]/div[2]/div/div/div[2]/div/div/div/div/div/div/div[3]/div/div" ,然后做 “clickAt”

    如果我使用

    driver.findElement(By.xpath("//div[@id='contentPane']/div/div[2]/div/div[2]/div[2]/div/div/div[2]/div/div/div/div/div/div/div[3]/div/div"); Actions clicker = new Actions(driver); clicker.moveToElement(baseElement).moveByOffset(0, 0).click().perform();

    我收到异常“ Element not found“。 我做错了什么?

    +0

    中的XPath似乎是不正确的。如果你添加html,它会帮助别人帮你 –

    +0

    Xpath似乎是非常错误的。您可以删除所有内容并仅使用该ID。应该管用。 – Vinay

    +0

    在IDE中就像这样“clickAt // div [@ id ='contentPane']/div/div [2]/div/div [2]/div [2]/div/div/div [2]/div/div/div/div/div/div/div [3]/div/div“ – user3172706

    回答

    0

    这样长的xpaths的使用会导致测试用例失败,新的div可以被动态添加或删除。应该有一部分id保持不变。

    例如在id = "someString_1234"中,如果'someString'保持不变并且其余部分保持不变,那么可以使用诸如id * ='someString'之类的符号来定位它。

    You can refer this discussion for more info.

    0

    而不是

    driver.findElement(By.xpath("//div[@id='contentPane']/div/div[2]/div/div[2]/div[2]/div/div/div[2]/div/div/div/div/div/div/div[3]/div/div"); 
    

    试试这个代码:

    driver.findElement(By.id("contentPane"); 
    
    相关问题