Не могу найти свой элемент (новичок в селене)

здесь новый программист- Я пытаюсь создать бот cookieclicker, используя селен. Cookie clicker - это веб-игра, ссылка на которую указана ниже

http://orteil.dashnet.org/cookieclicker/

Я пытаюсь найти элемент, вот так

 WebElement element = driver.findElement(By.id("upgrades"));

а затем я называю это здесь:

upgrades = element.findElements(By.className("enabled"));

Я хочу составить список «включенных» «апгрейдов». Однако я получаю исключение с нулевым указателем во втором фрагменте кода, но на веб-сайте явно есть элемент, называемый «обновления».

Спасибо за ваше время!

редактировать:

это блок кода из игры, который я пытаюсь щелкнуть

<div id = "upgrades" class = "storeSection upgradeBox"><div onclick = "Game.UpgradesById[0].click(event);" class = "crate upgrade enabled" onmouseout = "Game.setOnCrate(0);Game.tooltip.shouldHide=1;" onmouseover = "if (!Game.mouseDown) 

и я пытаюсь выудить эти "включенные" обновления

<div onclick = "Game.UpgradesById[0].click(event);" class = "crate upgrade enabled" onmouseout = "Game.setOnCrate(0);Game.tooltip.shouldHide=1;" onmouseover = "if (!Game.mouseDown) {Game.setOnCrate(this);Game.tooltip.dynamic=1;Game.tooltip.draw(this,function(){return Game.crate(Game.UpgradesById[0],'store',undefined,undefined,1)();},'store');Game.tooltip.wobble();}" id = "upgrade0" style = "background-position:0px 0px;"></div>

Я также пробовал использовать элемент @FindBy (id = "upgrade") WebElement;

George Xu 16.08.2018 05:27

Оцените, если вы поделитесь блоком HTML вместо LInk.

Ishita Shah 16.08.2018 05:43

@IshitaShah Я отредактировал свой пост, ты это имеешь в виду?

George Xu 16.08.2018 06:02

Поделитесь своим первоначальным блоком кода пробной версии, откуда он получил исключение NullPointerException.

Ishita Shah 16.08.2018 06:08

Проверить, есть ли на кадре или нет

iamsankalp89 16.08.2018 06:55

Когда в вашей игре активированное обновление отображается пользователю? В начале пусто

Shivam Mishra 16.08.2018 08:01
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
6
81
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я только что проверил на сайте, ваш код требует модификации.

Используйте приведенный ниже код:

WebElement element = driver.findElement(By.id("upgrades"));
Actions acc=new Actions(driver);
acc.moveToElement(element).build().perform();
List<WebElement> upgrades = element.findElements(By.className("enabled"));

Сообщите мне, работает ли это для вас.

Другие вопросы по теме