Поиск элемента текстового поля с помощью xpath - PullRequest
0 голосов
/ 08 мая 2020

Итак, я хочу найти элемент текстового поля с помощью xpath, мой код раньше выглядел так, и он работал:

element = driver.findElement(By.xpath("//input[(@id='login') or (@name = 'login')]"));

Но я хотел убедиться, что драйвер выбирает текстовое поле, поэтому я изменил его на это:

element = driver.findElement(By.xpath("//input[((@id='login') or (@name = 'login')) and (@type='text']"));

Это не сработало, я искал решение, но я не нашел практически никакой информации об использовании ИЛИ и И на xpath.

Спасибо ты!

Ответы [ 3 ]

1 голос
/ 08 мая 2020

Ниже сработало для меня:

element = driver.findElement(By.xpath("//input[(@id='login' or @name='login') and @type='text']")
1 голос
/ 08 мая 2020

Я предполагаю, что в последнем @ type есть опечатка - это должно было быть @ type =, а также отсутствует ) из того же условия @type. Ниже приведен исправленный код, который я тестировал.

element = driver.findElement(By.xpath("//input[((@id=\"login\") or (@name = \"login\")) and (@type=\"text\")]"));
0 голосов
/ 09 мая 2020

попробуйте это:

element = driver.findElement(By.xpath("//input[(contains(@id,'login') or contains(@name,'login')) and contains(@type,'text')]";
...