селен получается так же, как JQuery - PullRequest
0 голосов
/ 08 мая 2019

Я написал следующий jQueryCode:

$(".row").each(function() {
  $(this).find("[itemprop='name']").each(function(idx, val) {
    console.log($(val).text())
  });
  $(this).find("[itemprop='streetAddress']").each(function(idx, val) {
    console.log($(val).text())
  });
  $(this).find("[itemprop='postalCode']").each(function(idx, val) {
    console.log($(val).text())
  });
  $(this).find("[itemprop='addressLocality']").each(function(idx, val) {
    console.log($(val).text())
  });
  $(this).find("[itemprop='telephone']").each(function(idx, val) {
    console.log($(val).text())
  });
  $(this).find("[itemprop='faxNumber']").each(function(idx, val) {
    console.log($(val).text())
  });
  $(this).find("[itemprop='email']").each(function(idx, val) {
    console.log($(val).text())
  });
  $(this).find("[itemprop='url']").each(function(idx, val) {
    console.log($(val).text())
  });
  console.log("[NEW ENTRY]");
});

На данный момент он просто регистрирует содержимое сайта в консоли, что хорошо для последующей отладки, его следует обернуть в объект, но это не проблема.


Я хочу использовать это как сканер в Selen, но код, который я там написал, имеет неожиданное поведение, и я просто не могу понять, в чем здесь проблема.

driver.findElements(By.css(".row")).then(function(elements) { //select all css row-containers
      elements.forEach(function(element) {
        element.findElements(By.css("[itemprop='name']")).then(function(subelems) {
          subelems.forEach(function(subelem) {
            subelem.getText().then(function(txt) {
              console.log("name:");
              console.log(txt);
            })
          });
        });
      });

Как можно выбрать в селене каждый элемент .row-Element, а затем искать элементы в этом элементе, как я это делал в jQuery? И как я могу иметь дело с ситуациями, когда такого элемента не существует, потому что тогда он всегда выдает мне ошибки, тогда как jQuery просто игнорирует его и переходит к следующему элементу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...