Идентификация xpath Передача динамического значения

1

xpath

driver.findElement(By.xpath("//input[@accesskey='9']"));

как передать нам динамическое значение в атрибуте accesskey, потому что атрибут accesskey присваивает любое целое число

поэтому я получаю этот идентификатор из базы данных и пытаюсь передать этот идентификатор в атрибуте accesskey, как использовать java?

Html-код

td style="width: 5%;">
<input type="checkbox" data-bind="attr: { accesskey: Id }" accesskey="6">
</td>
<td style="width: 5%;">
<input type="checkbox" data-bind="attr: { accesskey: Id }" accesskey="7">
</td>

код Java

public void portfolioRenewalSearch(String portfolioId) throws Exception {

        try {
            driver.findElement(By.xpath("//input[@accesskey= portfolioId]"))
                    .click();    
        } catch (AssertionError Ae) {
            Ae.printStackTrace();
        }
    }

но приведенный выше код показывает исключение "selenium.NoSuchElementException"

  • 0
    Вы хотите, чтобы значение 9 было передано для атрибута "accesskey" во время выполнения?
  • 0
    да, проверьте с моим кодом Java
Теги:
xpath
selenium

2 ответа

4
Лучший ответ

Попробуйте использовать следующий фрагмент для передачи значений во время выполнения

public void portfolioRenewalSearch(String portfolioId) throws Exception {
    try {
        driver.findElement(By.xpath("//input[@accesskey="+portfolioId+"]"))
                .click();
    } catch (AssertionError Ae) {
        Ae.printStackTrace();
    }
}
  • 0
    Если строка не работает, используйте int
  • 0
    это работает, спасибо
Показать ещё 2 комментария
0
Here is the solution for index variable

Let say, you have found 5 elements with same locator and you would like to perform action on each element by providing index number (Here, variable is used for index as "i")

for(int i=1; i<=5; i++)
{
    string xPathWithVariable = "(//div[@class='className'])" + "[" + i + "]";
    driver.FindElement(By.XPath(xPathWithVariable)).Click();
}

It takes XPath as below
(//div[@class='className'])[1]
(//div[@class='className'])[2]
(//div[@class='className'])[3]
(//div[@class='className'])[4]
(//div[@class='className'])[5]

Ещё вопросы

Сообщество Overcoder
Наверх
Меню