Как я выхожу из апострофа в своем текстовом запросе XPath с Perl и Селеном?

У меня есть запрос XPath, который должен соответствовать некоторому тексту в атрибуте промежутка, следующим образом:

my $perl_query = qq(span[text\(\)='It's a problem']);

$sel->click_ok($perl_query);

Где текст не имеет никакого апострофа нет никакой проблемы.

Я попробовал следующее вместо, 'Он - проблема':

'It\'s a problem'
'It&apos\;s a problem'
'It\${apos}s a problem'  #some thread on Stackoverflow suggested that this was a solution implemented by Selenium, but it doesn't work.

Какие-либо идеи?

На другой ноте, если бы я не могу решить это, я был бы достаточно счастливым соответствием 'проблеме', но не уверенный, как сделать соответствие regex в XPath с Селеном.

Спасибо за любые указатели

11
задан Zaid 27 June 2010 в 10:58
поделиться

3 ответа

Возможно ли, что фактический текст на веб-странице представляет собой фигурную цитату, а не прямой апостроф? Кроме того, у вас может быть дополнительное пространство в начале и в конце диапазона, так что строгое равенство с вашей строкой не будет соответствовать.

0
ответ дан 3 December 2019 в 10:43
поделиться

Если возможно, подумайте о том, чтобы разбить строку:

my $spanValue = q/text()='It's a problem'/;
my $perlQuery = qq/span[$spanValue]/;

# $perlQuery = span[text()='It's a problem']
0
ответ дан 3 December 2019 в 10:43
поделиться

Пара предложений; надеюсь, что хотя бы один из них будет работать:

my $perl_query = qq!span[text()='It\\'s a problem']!;
my $perl_query = qq!span[text()="It's a problem"]!;
2
ответ дан 3 December 2019 в 10:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: