У меня была эта проблема с питоном и селеном. Мой обходной путь - установка переменной, используя find_element_by //, что вы хотите, и вызов ее в javascript. Таким образом, вы можете идентифицировать элемент так, как вам нравится, и javascript все равно сможет его прочитать.
вот пример того, о чем я говорю (опять же, это Python, но переключение синтаксиса не должно быть такой большой проблемой:
nextPage = driver.find_element_by_xpath("//button[contains(text(),'2')]")
driver.execute_script("arguments[0].style.visibility = 'visible'; arguments[0].click();", nextPage)