Нажатие определенной кнопки CasperJS не работает

Я использую следующий код в длинном скрипте много раз:

this.click("<selector>");

Но есть одна страница, которая не работает, и я не понимаю, почему.

HTML-код:

<div class="bottom-row">
 <div class="actions-primary">                                                                                                                                                                                
   <button class="add-subscription button middle" id="2">Choose</button>
 </div>
</div>

Поэтому я использую:

casper.waitUntilVisible('#products_screen',
    function success() {
        casper.test.pass('Product List Show');
        this.echo(this.getHTML('.actions-primary'));
        //this.click("button#2.add-subscription.button.middle");
        this.click("#2");
    },
    function fail() {
        casper.test.fail('List of Products not showing');
    },
50000);

Я перепробовал все возможные селекторы без удачи.

Кроме того, если я пытаюсь использовать Resurrectio в Chrome, он не записывает щелчок.

Любой обходной путь приветствуется.

ОБНОВЛЕНИЕ РЕШЕНИЯ:

this.click('[id="2"]');

2 ответа

Я решаю это с помощью формата селектора CSS:

this.click('[id="2"]');

Если id это число, вы должны либо экранировать число на основе кодовой точки Unicode, либо использовать селектор атрибута.

Оба следующих решения будут работать:

this.click( '#\\32 ' );    // Escaped based on Unicode code point
this.click( '[id="2"]' );  // Attribute selector
Другие вопросы по тегам