<div class="m-page-nav m-bottom-2" data-hbui="mobile-nav" role="navigation">
<span aria-`enter code here`label="Collapse page navigation" class="a-icon m-page-nav-icon m-page-nav-icon-collapse">expand_more</span>
<span aria-label="Expand page navigation" class="a-icon m-page-nav-icon m-page-nav-icon-expand">expand_more</span>
<button data-scroll-header class="m-page-nav-button"></button>
<div data-gumshoe class="m-page-nav-list">
<a data-scroll href="#intro" tabindex="0">Intro</a>
<a data-scroll href="#courseHeadingDescription" tabindex="0">Enrolment Disclaimer</a>
<a data-scroll href="#admissionRequirements" tabindex="0">Admission Requirements</a>
<a data-scroll href="#programRequirements" tabindex="0">Program Requirements</a>
<a data-scroll href="#professionalOutcomes" tabindex="0">Professional Outcomes</a>
<a data-scroll href="#recognitionMasters" tabindex="0">Recognition of Achievement</a>
<a data-scroll href="#fees" tabindex="0">Program Fees</a>
</div>
</div>
我对机器人框架有点新意。我正在尝试使用以下xpath从href
锚标记值Intro
检索值
//*[@id="pageNavContainer"]/div/div/a[2]/@href
但是当我运行脚本来获取带有上述xpath的文本时,我收到以下错误:
InvalidSelectorException: Message: invalid selector: The result of the xpath express
我也尝试使用getattribute
,但它没有用。
任何人都可以帮我解决这个问题的正确xpath吗?
提前致谢
答案 0 :(得分:0)
要提取文字简介,您可以使用以下xpath
:
//*[@id="pageNavContainer"]//div[@class='m-page-nav m-bottom-2']//div[@class='m-page-nav-list']//following-sibling::a[1]
接下来,您可以使用获取元素属性来提取href
:
${HREF}= Get Element Attribute ${element_xpath}@href
答案 1 :(得分:0)
您收到的错误说明了一切 - 您提供的选择器不是有效的;问题来自最后的/@href
构造。
在XPath中,可以使用此语法确定特定节点的属性。然而在Selenium(Robotframework包装)中,定位器必须指向一个元素,而不是它的属性 - 因此当它评估你的表达式时,它会抛出异常。
如果您将定位器更改为
//*[@id="pageNavContainer"]/div/div/a[2]
,并且使用Get Element Attribute
传递href作为目标,您将获得所需的值。