Я пытаюсь найти ссылку/кнопку для определенного источника. Мне уже удалось назначить кнопку с использованием свойств формы, однако новая кнопка, которую я пытаюсь нажать, не имеет формы. Ниже приведен исходный код HTML для кнопки JavaScript:Htmlunit Javascript Button/Link
<span class="followButtonActions" id=".reactRoot[0].[0].[1].[2].{userprofile0001}.[1].[1]. [1].[1]">
<a class="Button FollowButton followButtonFollow" role="button" href="javascript:;" id=".reactRoot[0].[0].[1].[2].{userprofile0001}.[1].[1].[1].[1].0">
<span id=".reactRoot[0].[0].[1].[2].{userprofile0001}.[1].[1].[1].[1].0.[0]">
<span id=".reactRoot[0].[0].[1].[2].{userprofile0001}.[1].[1].[1].[1].0.[0].[0]">Follow</span> </span>
</a>
</span>
До сих пор я пытался использовать этот класс для идентификации элемента, однако я не увенчались успехом в поиске кнопки/ссылки на страницы. Я пытался использовать htmlAnchor, однако это не сработало, поэтому я переключился на DOM ELEMENT. Ниже приведен мой текущий код для поиска кнопки/ссылки, результаты которой: java.lang.NullPointerException.
final DomElement myAnchor = page3.getFirstByXPath("//span[@class='followButtonActions']");
final HtmlPage newPage = myAnchor.click();
Я также пробовал следующее, что приводит к: java.lang.NullPointerException.
final HtmlSubmitInput button = page.getFirstByXPath("//class[@id='.reactRoot[0].[0].[1].[2].{userprofile0001}.[1].[1].[1].[1].0']");
final HtmlPage newPage = button.click();
У меня есть точка, где я пытаюсь почти все! В условиях laymans я пытаюсь назначить ссылку javascript на кнопку, которая затем может быть нажата. Мой подход состоял в том, чтобы каким-то образом связать «Button FollowButton followButtonFollow» с кнопкой, которую можно щелкнуть. Любая помощь будет оценена. Спасибо :)
Спасибо за ответ. Я применил ваш код, однако мой якорь напечатан как NULL. По какой-то причине, когда я просматриваю источник, я могу просмотреть однако, когда я печатаю страницу с помощью page.asXml(), я не могу просмотреть класс и т. д. Вы могли бы предложить какие-либо идеи? –
Stan
Сделайте 'webClient.waitForBackgroundJavaScript (10 * 1000);' перед вызовом 'page.asXml()'. Из того, что вы говорите, исходная страница, кажется, создает эти элементы (вы опубликовано) по javascript. Это так? – acdcjunior