2012-05-21 3 views
0

Мы это XPath, определенный в файле YML:Пространство в атрибуте элемента в XPath

message_form_show: //div[@class='cart']/div[@class='message']/form[@id='message-form' and not contains(@style, 'display:none')] 

Однако мы хотели бы, чтобы изменить «display: none» вместо этого, но при добавлении пространства, Netbeans жалуется произнося YML правильно не обрабатывается, и проверка Selenium также терпит неудачу.

Любые идеи, как это можно было бы решить?

+0

тест Селен терпит неудачу на что? Если он говорит, что элемент не может быть найден, а исходный элемент не имеет пробела в 'display: none', то XPath его не найдет. Или это происходит из-за исключительного исключения XPath? –

+0

Не удается получить исключение XPath –

+0

И если вы попытаетесь распечатать XPath в тесте Selenium, будет ли он печатать весь XPath? Или он напечатает некоторый фиктивный? –

ответ

0

Проблема заключается в том, что после изменения YAML parsesdisplay: (с двоеточием, за которым следует пробел) в качестве нового массива, который содержит none')]. Это обычно позволяет YAML содержать, например, списки массивов массивов, но в этой ситуации все становится не так.

The solution is to specifically delimit the string as a block so YAML won't try to resolve it:

message_form_show: > 
    //div[@class='cart']/div[@class='message']/form[@id='message-form' and not contains(@style, 'display: none')] 

или просто процитировать его в двойные кавычки:

message_form_show: "//div[@class='cart']/div[@class='message']/form[@id='message-form' and not contains(@style, 'display: none')]" 
Смежные вопросы