Вам нужны круглые скобки вокруг аргумента By.XXX()
. Кроме того, существует .
между By
и типом локатора.
И у вас несбалансированные скобки - вы пропускаете )
, который соответствует (
после self.s21.execute_javascript
. (Я не уверен, почему ваш второй пример не имеет такой же проблемы).
self.s2l.execute_javascript(
'document.findElement(By.xpath("{}"))[0].scrollBy(0,{})'.format(
element,
new_position
)
)
Кроме того, xpath
в нижнем регистре JavaScript Selenium.
, если XPath выражение содержит кавычки, не используйте кавычки того же типа, которые ограничивают XPath, а затем избегайте их, чтобы они не заканчивали строку, содержащую JavaScript.
self.s21.execute_javascript(
'document.findElement(By.xpath("//div[starts-with(@class,\'ReactVirtualize\')]"))[0].scrollBy(0,8000)'.format(
element,
new_position
)
)