Как выбрать определенные элементы HTML без класса или идентификатора с помощью WWW::Mechanize::Firefox?

Я пытаюсь перебирать ссылки на странице, но я хочу перебирать только определенные. Проблема в том, что ссылки в якорях <a> вообще не имеют идентификаторов или классов CSS.

eg.

<a title="View More Information on FOO" href="tranlist.phtml?scode=FOO&sname=&refpg=1&snapcode=&ssector=1123&scheme=default" name="tranlist">

Единственная уникальная вещь — это name, но не похоже, что ее можно указать с помощью селектора CSS.


person stephen    schedule 11.03.2013    source источник


Ответы (2)


Из спецификации CSS селектор CSS, например a.normal совпадает с a[class~=normal], и таким образом можно сопоставить любой атрибут. Итак, вам нужно

$mech->selector('a[name=tranlist]')
person Borodin    schedule 11.03.2013

Из документации модуля:

$mech->find_link(name => "something")

name_contains и name_regex также доступны.

[Редактировать: find_link_dom возвращает специфичные для Firefox объекты MozRepl::RemoteObject::Instance, а не стандартные объекты WWW::Mechanize::Link, которые возвращаются find_link. Исправлено для более общего случая.]

person Greg D'Arcy    schedule 11.03.2013