HTML автоматически нормализуется
пробелы внутри элементов, игнорируя
ведущие / конечные пробелы и конвертирование
дополнительные пробелы, табуляции и новые строки в
единое пространство Когда Селен читает текст
вне страницы, он пытается
продублируйте это поведение, чтобы вы могли
игнорировать все вкладки и новые строки в
ваш HTML и делать утверждения на основе
как текст выглядит в браузере, когда
оказаны. Мы делаем это, заменяя все
невидимые пробелы (включая
неразрывный пробел "
") с
единое пространство Все видимые новые строки
(<br>
, <p>
и <pre>
в формате
новые строки) должны быть сохранены.
Мы используем ту же логику нормализации на
текст HTML-теста Selenese
столы. Это имеет ряд
преимущества. Во-первых, вам не нужно
посмотрите на источник HTML страницы, чтобы
выяснить, что ваши утверждения должны
быть; "
" символы невидимы
до конечного пользователя, и поэтому вы не должны
должны беспокоиться о них при написании
Селенские тесты. (Вам не нужно ставить
Маркеры "
" в вашем тестовом случае
assertText на поле, которое содержит
"
".) Вы также можете поставить дополнительные
переводы строк и пробелы в вашем Selenese
<td>
тегов; так как мы используем то же самое
логика нормализации на тестовом примере
как мы делаем на тексте, мы можем обеспечить
что утверждения и извлеченный текст
будет точно соответствовать.
Это создает небольшую проблему на
те редкие случаи, когда вы действительно
хочу / нужно вставить лишние пробелы
в вашем тестовом случае. Например, вы
может потребоваться ввести текст в поле, подобное
это: "foo
". Но если вы просто
напишите <td>foo </td>
в вашем
Селенезе, мы заменим ваш
дополнительные пробелы с одним пробелом.
Эта проблема имеет простой обходной путь.
Мы определили переменную в Selenese,
${space}
, значение которого является одним
пространство. Вы можете использовать ${space}
для
вставить пробел, который не будет
автоматически обрезается, вот так:
<td>foo${space}${space}${space}</td>
.
Мы также включили переменную
${nbsp}
, который вы можете использовать для вставки
неразрывный пробел.
Обратите внимание, что XPaths не нормализуют
пробел, как мы делаем. Если тебе надо
написать XPath как
//div[text()="hello world"]
но
HTML-код ссылки действительно
"hello world
", вам нужно
вставьте настоящий "
" в ваш
Selenese тестовый пример, чтобы он соответствовал,
как это:
//div[text()="hello${nbsp}world"]
.