У меня есть запрос 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 с Селеном.
Спасибо за любые указатели
Возможно ли, что фактический текст на веб-странице представляет собой фигурную цитату, а не прямой апостроф? Кроме того, у вас может быть дополнительное пространство в начале и в конце диапазона, так что строгое равенство с вашей строкой не будет соответствовать.
Если возможно, подумайте о том, чтобы разбить строку:
my $spanValue = q/text()='It's a problem'/;
my $perlQuery = qq/span[$spanValue]/;
# $perlQuery = span[text()='It's a problem']
Пара предложений; надеюсь, что хотя бы один из них будет работать:
my $perl_query = qq!span[text()='It\\'s a problem']!;
my $perl_query = qq!span[text()="It's a problem"]!;