Selenium 如何根据提供的html检索标签文本?

Selenium 如何根据提供的html检索标签文本?,selenium,selenium-webdriver,xpath,css-selectors,webdriver,Selenium,Selenium Webdriver,Xpath,Css Selectors,Webdriver,有时我无法获取web元素的内部文本;最近正在处理个人保险,未能获取标签(web元素)的内部文本。以下是已检查网页的脚本和屏幕截图: WebElement detailPostCode =driver.findElement(By.xpath("//label[@for='q_codePostalDetailAU']")); System.out.println("postcode label text "+detailPostCode.getText()); 请任何人帮我理解这个问题。谢谢你的

有时我无法获取web元素的内部文本;最近正在处理个人保险,未能获取标签(web元素)的内部文本。以下是已检查网页的脚本和屏幕截图:

WebElement detailPostCode =driver.findElement(By.xpath("//label[@for='q_codePostalDetailAU']"));
System.out.println("postcode label text "+detailPostCode.getText());
请任何人帮我理解这个问题。谢谢你的关心


您能试试这个xpath吗:

driver.findElement(By.xpath("//div[@class='q_codePostal']/label"));
根据HTML,您共享了
,文本为邮政编码
标记的子节点,类属性为q\u code邮政编码

出了什么问题? 根据您的代码试用版,您已使用:

WebElement detailPostCode = driver.findElement(By.xpath("//label[@for='q_codePostalDetailAU']"));
在这个表达式中,
//label[@for='q\u codepastaldetailau']
总是将带有
id
属性的降序
标记称为q\u codepastaldetailau。因此,您的代码试用不起作用

解决方案 作为替代方案,您可以使用以下解决方案:

WebElement detailPostCode = driver.findElement(By.cssSelector("div.q_codePostal>label"));

欢迎来到堆栈溢出!确保您在问题中添加了您所使用语言的标记。同时将问题中的代码格式化为代码。如果您需要有关格式设置的帮助,请参阅帮助主题。是否可以添加(完整/相关)错误消息,或者描述当错误消息不起作用时会发生什么?看起来你的定位器很好。。。我想知道这是否不是一个需要添加等待的时间问题。你试过等待吗?如果是,结果是什么?它现在正在使用您建议的xpath。。。但是,我不明白这有什么不同。你能解释一下原因吗?“for”实际上不是一个可以在xpath中使用的属性,如果它是class、id、css、text,那么你可以这样做。我总是喜欢使用parent div(如果可用的话)并从它们的标签导航到child标签,这样更容易,也很难错过它,99%的时间都是有效的。如果你喜欢,你也可以投票支持我的答案。希望我的回答有帮助。干杯