我试图在此页面中找到 elemnts 并将其放入对象 (DomElement( 中以对其进行一些测试,问题是 elemnt reg-error-yid 它是div yid-field-suggestion 中的内部div,我试图获取 ElementById、byName、byXPath 和 getFirstByXPath 它都不起作用,我也尝试使用 WebDriver 更改 webClient 并使用driver.findElement(By.className("oneid-error-message"))
它也不起作用
注册消息的别名
<div id="reg-error-yid" class="oneid-error-message" data-error="messages.IDENTIFIER_EXISTS" role="alert">A Yahoo account already exists with this email address. <a href="https://login.yahoo.com/?intl=xa&lang=en-JO&src=ym&.intl=xa&specId=yidReg&.done=https%3A%2F%2Fmail.yahoo.com&nr=1&step=2&.crumb=qP.UnkGzfkR&login=abtallaldigital">Sign in</a>.</div>
我的代码
final HtmlPage page1 = webClient.getPage("https://login.yahoo.com/account/create?specId=yidReg&lang=en-JO&src=ym&done=https%3A%2F%2Fmail.yahoo.com&display=login&intl=xa");
final DomElement firstName = page1.getElementById("usernamereg-firstName");
final DomElement emailAddress = page1.getElementById("usernamereg-yid");
final DomElement takenMsg = page1.getElementById("reg-error-yid");
我不确定您的需求。我不能在这里发表评论。
但是如果你尝试解析文档,你可以使用 Jsoup 来解析文档。
与getElementById, byName, byXPath
相比,select
更有用和更容易。
org.jsoup.nodes.Document doc = Jsoup.connect("https://login.yahoo.com/account/create?specId=yidReg&lang=en-JO&src=ym&done=https%3A%2F%2Fmail.yahoo.com&display=login&intl=xa").get();
org.jsoup.select.Elements takenMsgs = doc.select("div[id=reg-error-yid]");
org.jsoup.select.Element takenMsgFirst = doc.select("div[id=reg-error-yid]").first;
看看是否可以将org.jsoup.select.Elements
转换为com.gargoylesoftware.htmlunit.html.DomElement