WebDriverException: missing ) after argument list

Хочу сделать элемент видимым с помощью джавскрипта.

JavascriptExecutor executor = (JavascriptExecutor)driver;
        executor.executeScript("document.getElementByXPath('//button[@title='Выбор из справочника Виды Соглашений']').style.display='block';");

Возникает ошибка:

Caused by: org.openqa.selenium.WebDriverException: missing ) after argument list

Кто подскажет из-за чего она?

Одинарные кавычки внутри одинарных кавычек. Как воркэраунд, замени все одинарные кавычки внутри двойных на двойные с экранированием, что-то типа:

executor.executeScript("document.getElementByXPath(\"//button[@title=\"Выбор из справочника Виды Соглашений\"]\").style.display=\"block\";");
1 лайк

Исправил, но теперь другая ошибка:

WebDriverException: document.getElementByXPath is not a function

Ну если вы только не изобрели свой собственный метод, то такое и должно работать. Пруф.

2 лайка

Используйте css локаторы и jQuery, либо завилосипедьте функцию которую пытались использовать :smile:

1 лайк

Вот так

executor.executeScript("document.querySelector(\"[title='Выбор из справочника Виды Соглашений']\").style.display=\"block\";");

И все зашибись )
спасибо!