РЕДАКТИРОВАТЬ: через несколько секунд после загрузки страницы на страницу добавляется предупреждение о файлах cookie (чего я раньше не замечал, и, конечно, я долгое время принимал его вручную в своем браузере) назад) ... что, я думаю, лишает законной силы то, что случилось до этого. поэтому я просто добавил wait после get () и теперь все хорошо.
stale element reference: element is not attached to the page document
ошибка при циклическом просмотре веб-элементов, найденных с find_elements()
после первого элемента.
Попытка запустить этот простой скрипт
use strict;
use warnings;
use feature qw/say/;
use Selenium::Chrome;
my $driver = Selenium::Chrome->new( binary => 'C:/path-to/chromedriver.exe' );
$driver->get( 'https://...' );
my $pdf_links = $driver->find_elements('//a[@class="file-link"]');
for my $link (@$pdf_links) {
my $filename = $driver->find_child_element($link, "./span")->get_text();
say $filename;
}
и я получаю эту ошибку:
first-file-name.pdf
Error while executing command: stale element reference: element is not attached to the page document
(Session info: chrome=75.0.3770.100)
(Driver info: chromedriver=75.0.3770.90 (a6dcaf7e3ec6f70a194cc25e8149475c6590e025-refs/branch-heads/3770@{#1003})
,platform=Windows NT 10.0.18362 x86_64) at C:/<path>/perl/perl/site/lib/Selenium/Remote/Driver.pm line 403.
at C:/<path>/perl/perl/site/lib/Selenium/Remote/Driver.pm line 353.
@$pdf_links
имеет более 160 элементов, но find_child_element()
работает только на 1-й итерации.