当前位置: 首页 > 面试题库 >

Selenium:在Java中使用cssSelector提取div的文本

笪波鸿
2023-03-14
问题内容

我正在使用Selenium为网页编写JUnit测试,并且试图验证页面中是否存在预期的文本。我正在测试的网页代码如下所示:

<div id="recipient_div_3" class="label_spacer">
   <label class="nodisplay" for="Recipient_nickname"> recipient field: reqd info </label>
   <span id="Recipient_nickname_div_2" class="required-field"> *</span>
   Recipient:
</div>

我想将预期的内容与页面上的内容进行比较,因此我想使用Assert.assertTrue()。我知道要从div获得一切,我可以

String element = driver.findElement(By.cssSelector("div[id='recipient_div_3']")).getText().replaceAll("\n", " ");

但这将返回“必填信息*收件人:”

有没有办法使用cssSelector从div(“收件人”)获取文本,而没有其他标签


问题答案:

您不能使用CSS选择器来执行此操作,因为CSS选择器没有一种足够细粒度的方法来表示“
DIV中包含的文本节点,而不是其其他内容”。不过,您可以使用XPath定位器来做到这一点:

driver.findElement(By.xpath("//div[@id='recipient_div_3']/text()")).getText()

该XPath表达式将 标识作为DIV的直接子级的单个文本节点,而不是其中及其子节点中包含的所有文本。



 类似资料:
  • 我想从Page_inspect得到课文课的价格。 使用driver.find_element_by_xpath和 Web 驱动程序等待。 结果未找到 : 回溯(最后一次调用):文件“D:\project\totempop\webscraping\asrPOP.py”,第22行,rateText=WebDriverWait(driver,10)。直到(EC.presence_of_all_eleme

  • HTML div类,其中包含我希望打印的数据 这是我目前的代码: 我打印出来的都是 硒。网络驱动程序。遥远的webelement。WebElement(session=“9aa956e2bd51f510dd626f6937b01c0e”,element=“0.6506218589958-1”) 我对selenium的帮助并不陌生

  • 问题内容: 在输入框selenium中,我们可以输入如下值: 但是在1个网页上,我点击了要获得selenium的一个div后有一个按钮,我得到了那个div的xpath 使用xpath,我正在获得div,但是如何使用xpath在其中输入文本? 手动添加文本后的HTML: 我必须在其中输入文本的div是: 问题答案: 您可以使用JavaScript更新DIV文本 在JavaScript中使用XPATH

  • 我必须在其中输入文本的div是:

  • 我正在尝试创建一个机器人,在各种TikTok帖子上留下评论,其中一些帖子需要留下一个提及,例如用户名。问题是,TikTok的注释框是一个div元素,而不是一个input元素。 首先,我知道这个StackOverflow帖子,对一些人来说,它只是说使用javascript更新div值。问题是,如果编辑代码,它将不会显示用户名下拉菜单 “用户名下拉菜单”是什么? 这是一个小菜单,上面有你想要提及的用户

  • 我有一个HTML元素. 加载页面后,我可以使用从该元素获取文本。 但随后我点击这个元素并更改里面的文本(例如,改为“已编辑”)。DOM中没有任何变化,包括属性 的值(即仍然返回“initial”,并且DOM中的元素看起来像) 如何提取现在在浏览器中可见的值(即字符串“已编辑”)?我需要执行一些JavaScript或其他东西吗?