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"
Попробуйте использовать следующий фрагмент для передачи значений во время выполнения
public void portfolioRenewalSearch(String portfolioId) throws Exception {
try {
driver.findElement(By.xpath("//input[@accesskey="+portfolioId+"]"))
.click();
} catch (AssertionError Ae) {
Ae.printStackTrace();
}
}
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]