Попытка проверить значение этого элемента на угловом плунжере:
it('should display valid',function(){
browser.get('http://embed.plnkr.co/3nt01z/preview');
var errortext =element(By.xpath('body>div>h2>span:nth-child2)')).getText);
expect(errortext).toBe('Not:(');
})
Получение ошибки:
Stacktrace:
InvalidSelectorError: invalid selector: Unable to locate an element with the xpath expression body>div>h2>span:nth-child(2) because of the following error:
SyntaxError: Failed to execute 'evaluate' on 'Document': The string 'body>div>h2>span:nth-child(2)' is not a valid XPath expression.
Есть ли лучший способ найти этот элемент span или правильное выражение xpath?
Я думаю, вы имели в виду By.cssSelector(...)
.
By.xpath
ожидает выражение XPath, которое будет чем-то вроде /body/div/h2/span[2]
, хотя я не уверен в точном синтаксисе.
Кстати, ваш код будет легче протестировать, если вы добавили в элемент ID или CSS-класс, поэтому вам не нужно зависеть от точной структуры DOM.
Попробуйте использовать элемент (by.css('some css selector'))
Кроме того, у вас есть опечатка в коде - getText; вместо getText();
Или попробуйте следующее:
var errortext = element(By.xpath('/body/div/h2/span[2]')).getText();