2016-08-23 2 views
1

Я пробую этот xpath, но я не знаю, как продолжить? у меня есть 2 объекта в контекстном меню и я хочу, чтобы выбрать первый одинне может найти элемент по xpath, используя selenium

HTML-страницы является:

</div> 
<input class="sprite form-enter" type="submit" value="" name="wobi"> 
</div> 
<div class="container"> 
<img src="/_media/home/img/icons/pension.png"> 
<div class="login-text-container"> 
<a class="sprite form-enter" href="https://pension.wobi.co.il/login" value="" name="pension" type="submit"></a> 
</div> 
</div> 

код Java является:

driver.findElement(By.xpath("//input[@class='sprite form-enter' and input//@name='wobi']")).click(); 
Thread.sleep(2000); 

После выполнения кода Я получил следующее исключение:

Исключение в теме "main" org.openqa.selenium.NoSuchElementException: no such el ement: Невозможно найти элемент: {«method»: «xpath», «selector»: «// input [@ class = 'sprite form-enter' и input/@ name = 'wobi']"}

Что не так в моем коде?

+0

ли вы имеете в виду у вас есть два элемента с тем же классом 'спрайт форм-enter' и имя' wobi' ?? –

+0

ваш XPath неверно лучше попробуйте и проверьте, работает ли он в Firebug/Firepath –

ответ

1

На самом деле вы попробовать с неправильным xpath, правильный xpath будет: -

//input[@class='sprite form-enter' and @name='wobi'] 

Но я бы предложил вас, попробуйте u петь By.cssSelector() здесь, потому что это было бы гораздо быстрее, чем xpath, как показано ниже: -

driver.findElement(By.cssSelector("input.sprite.form-enter[name = 'wobi']")).click(); 
0

Попробуйте этот селектор:

//input[@class='sprite form-enter'][@name='wobi'] 
0

Похоже, у вас есть класс соединений, попробуйте использовать CSSSelector

driver.findElement(By.cssSelector(".sprite.form-enter")).click(); 
Смежные вопросы