имена атрибутов с тире не работают с get_attribute (perl Selenium)

#html #selenium #perl #attributes

#HTML #селен #perl #атрибуты

Вопрос:

 use feature 'say';
$selen = Selenium::Remote::Driver->new;
$selen->get("http://www.google.com");
$elem = $selen->find_element('(//div[@data-responsive-height-resize])[1]');
say $elem->get_attribute('data-responsive-height-resize'); # this doesn't work
say $selen->execute_script('return arguments[0].getAttribute("data-responsive-height-resize")', $elem);  # this works
  

Есть ли проблема Selenium::Remote::WebElement::get_attribute в том, что он не может обрабатывать тире в имени атрибута? Или я делаю что-то не так?

Комментарии:

1. Вы пытались добавить 1 , как сказано в документации для get_attribute ?

2. Да, это сработало!

3. Полагаю, я должен добавить это в качестве ответа…

Ответ №1:

Добавление комментария в качестве ответа.

В документации к get_attribute нему говорится, что вы можете использовать логическое значение в качестве второго аргумента

Если вы хотите получить начальное условие (например, значения в теге, жестко закодированные в HTML), передайте 1 в качестве второго аргумента.

Так что, если вы попробуете это, вы можете получить то, что хотите. (И, похоже, это сработало)