Casper.js Нажмите на идентификатор кнопки с разными именами - PullRequest
0 голосов
/ 16 мая 2018

Я пытаюсь нажать на маленькую пулю (кнопку) на веб-странице с помощью casper.js и сделать скриншот.

<div> == $0
  <input type="image" name="ct100$body$uxDashboardList$ct100$dshButton" id="dshButton" title="Page 1" src="Images/bullet_green.png">
  <input type="image" name="ct101$body$uxDashboardList$ct100$dshButton" id="dshButton" title="Page 2" src="Images/bullet_green.png">
  <input type="image" name="ct102$body$uxDashboardList$ct100$dshButton" id="dshButton" title="Page 3" src="Images/bullet_green.png">
  <input type="image" name="ct103$body$uxDashboardList$ct100$dshButton" id="dshButton" title="Page 4" src="Images/bullet_green.png">
</div>

Я могу сделать снимок экрана на первой целевой странице, используя:

var casper = require('casper').create();
var fs=require('fs');

casper.options.viewportSize = { width: 1920, height: 1080 };
casper.userAgent('Mozilla/5.0 (Windows NT 5.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36');
casper.start('https://websitenotdiscloseasitcontainsprivateinformationsandaspecialkey', function() {

    this.wait(10000, function() {
        this.click('ctl01$Body$uxDashboardList$ctl02$dshButton');
        casper.capture('page2.png');
   });
});

casper.run();

При использовании этого кода casper.js не делает снимок экрана (угадайте, что кнопка не найдена?)

Не удалось найти способ нажать кнопку, которая имеет такой же идентификатор, но имеет другое имя.

1 Ответ

0 голосов
/ 16 мая 2018

Так что я не ждал загрузки страницы после того, как щелкнул ссылку:

this.wait(5000, function() {
    this.click('input[type="image"][name="ctl00$Body$uxDashboardList$ctl02$dshButton"]');
   });
     this.wait(5000, function() {
         this.capture('test2.png');
  });

Может быть, не элегантно, но работает

...