Java 从父锚点HtmlUnit获取href

Java 从父锚点HtmlUnit获取href,java,htmlunit,Java,Htmlunit,我正在尝试使用HtmlUnit从span的父锚点获取href。这就是我的意思 <a href="http://link.com/serv?id=jibberish&type=dynamic/changeseachvisit"><span>Some Unique Text</span></a> 没有与或标记相关联的id或名称,因此通过本例,您如何在没有id或名称的大量其他链接中找到该链接? 谢谢 使用XPATH//span[包含(,

我正在尝试使用HtmlUnit从span的父锚点获取href。这就是我的意思

  <a href="http://link.com/serv?id=jibberish&type=dynamic/changeseachvisit"><span>Some Unique Text</span></a>

没有与或标记相关联的id或名称,因此通过本例,您如何在没有id或名称的大量其他链接中找到该链接?
谢谢

使用XPATH
//span[包含(,'Transcript')]/parent::a/@href


(未经测试,但XPATH绝对是最好的选择)

您是否使用链接作为标识它的手段?是的,您可以,但是此链接附加了查询字符串参数,它们是动态的(每次访问站点时都要进行更改,并且还要根据访问者isI不了解htmlunit的人或api的外观进行更改,但我认为您可以直接在js中或通过java api遍历DOM,因此必须有一个“getParent()”方法是的,有一个getParent方法,但是,我似乎也不能仅基于innertext就深入到这个范围。如果您知道xpath并且它是静态的,那么使用它(假设htmlunit理解xpath)。否则,您将不得不在DOM中迭代搜索您的唯一文本。不,绝对不是……您可以将XPATH与HTMLUnit结合使用。我经常使用它,XPATH是我首选的方法。在HTMLUnit中,您有一个名为“查找特定元素”的段落,其中指出:“XPATH是更复杂搜索的建议方法”我不熟悉XPATH,我尝试过这个…page.getByXPath(//span/contains(,'Transcript')/parent::a[@href]).get(0.toString()…有很多错误,比如“unknown nodetype:contains”,因为它是XPATH字符串方法,而不是节点名…我的XPATH语法不正确。请尝试
//span[contains(,'Transcript')]/parent::a/@href
您能解释一下您的第一条语句吗?(xpath字符串方法不是节点名?)。即使使用新的xpath语句,我也会遇到一个错误:page.getByXPath(//span[contains(,'Transcript')]/parent::a/@href”).get(0)。toString()我已经在这一页上测试过,并且
//span[contains(,'Transcript')]
至少可以工作…
//span
选择包含文本“Transcript”的所有span节点。
[]
用于条件表达式以缩小结果集,并且
包含
为其在params中获得的上下文节点返回true或false(此处为“.”,即当前节点)。然后选择
父对象::
轴,并使用标记“a”作为筛选器,然后选择href属性。我想在前面说明的是
//span/contains(…
不表示任何内容,因为contains是一个方法,而不是节点类型