java - 寻找获取父亲文本的选项

标签 java selenium-webdriver

我试图仅从父元素获取文本。见下文:

`<h2 class="maps-header-text-h1">
ABC 
<span id="currentMapCategory">DEF</span>
</h2>`

当我从 .maps-header-text-h1 执行 getText 时,我获取了表示 ABCDEF 的元素的所有文本,我想要的是仅获取 ABC 而没有如果可以的话使用JS?并理解为什么两个文本在一起,而我只找到第一个元素

这些是URL 该元素是 .maps-header-text-h1 在它下面你可以看到还有其他文本

谢谢

最佳答案

有几种解决方案:

JavascriptExecutor js = (JavascriptExecutor) driver;
WebElement element = driver.findElement(By.cssSelector(".maps-header-text-h1 #currentMapCategory"));
String headerText = (String) js.executeScript("return arguments[0].previousSibling.textContent", element).trim();

第二:

String headerText = driver.findElement(By.cssSelector(".maps-header-text-h1")).getText();
String mapCategoryText = driver.findElement(By.cssSelector("#currentMapCategory")).getText();

String headerText = headerText.replace(mapCategoryText, "").trim();

第三:

JavascriptExecutor js = (JavascriptExecutor) driver;
WebElement element = driver.findElement(By.cssSelector(".maps-header-text-h1"));
String headerText = (String) js.executeScript("return arguments[0].firstChild.textContent", element).trim();

来自 @KunduK 的另一个:

// split("\\s") means split by whitespace, that can be space, tab, newline.. 
String headerText = driver.findElement(By.cssSelector(".maps-header-text-h1"))
    .getText().trim()
    .split("\\s")[0];

关于java - 寻找获取父亲文本的选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58330826/

相关文章:

java - 如何从Android Wear进行Socket连接并向服务器发送数据

Java Swing : Expanding TreeNode

java - 图像未从 Firebase 存储加载

google-chrome - Selenium Google 登录 block

python - 单击由 JavaScript 使用 Python Webdriver 编写的数据绑定(bind)下的按钮

java - 如何阻止我的小程序刷新我的 GWT 页面?

java - 如何在 Python 或 Java 中使这个递归函数更快?

python - 检查文本文件中的参数 Python

java - 如何使用 POI 从 Excel 文件单元格获取数字和字符串值,我收到数字值错误,字符串值轻松获取

javascript - 无法使用带有 PageFactory 的 Selenium Java 选择下拉元素