selenium
  • xpath
  • webdriver
  • 2016-01-13 2 views 0 likes 
    0

    У меня есть элемент XpathXpath Создание в Selenium WebDriver

    //img[@onclick="EditResource(this,'10','0');"] 
    

    Мне нужно использовать это в цикле, где я заменит 10 с переменной я.

    driver.findElement(By.xpath("//img[@onclick='EditResource(this,'" + i +"','0');']")) 
    

    Но это ошибка. Нет такого элемента, как EditResource, в двойных кавычках.

    +1

    Пожалуйста, покажите документ HTML, который вы выбираете. –

    ответ

    0

    Вы можете легко избежала "от вашего локатора, как это:

    driver.findElement(By.xpath("//img[@onclick=\"EditResource(this,'" + i +"','0');\"]")) 
    
    +0

    Это сработало. Спасибо –

    +0

    Пожалуйста, отметьте как ответ, чтобы нить могла быть закрыта. –

    1

    Вы не должны использовать все особенности (как в Params функции) от onclick события, как те могут измениться в результате чего ваш xpath . потерпеть неудачу Вы можете использовать метод contains() внутри xpath и таким образом, даже если параметры изменяются (по любой причине), ваш элемент до сих пор найдено:

    .//img[contains(@onclick, 'EditResource')] 
    
    0

    Простой и легкий смотреть это ...

    String str1 = "EditResource(this,'"; String str2 = "','0')']"; driver.findElement(By.xpath(str1+i+str2));

    И, вы также можете сделать это в одной строке

    driver.findElement(By.xpath("//img[@onclick=\"EditResource(this,'" + i +"','0');\"]"));

    \" дает ' при выполнении XPath.

     Смежные вопросы

    • Нет связанных вопросов^_^