Selenium Java如何匹配两个span拼接文本并点击对应元素
问题原因
你当前的判断逻辑存在错误:你遍历的是单个span元素,每个span分别只存储片名和年份,单个span的文本自然不可能等于两个span拼接后的完整字符串Frat Brothers (2013),因此if分支永远不会触发。
另外你原代码的CSS选择器存在语法错误,末尾缺少闭合的方括号]。
解决方法
提供两种常用实现方案:
方案1:拼接两个span的文本后校验
String targetTitle = "Frat Brothers (2013)"; List<WebElement> spanList = driver.findElements(By.cssSelector("span[class*='name-content-row__']")); // 拼接两个span的文本,注意中间的空格要和目标格式对齐 String actualFullTitle = spanList.get(0).getText().trim() + " " + spanList.get(1).getText().trim(); if (actualFullTitle.equals(targetTitle)) { // 匹配成功后点击父级a标签,也可根据需求点击对应元素 spanList.get(0).findElement(By.xpath("./ancestor::a")).click(); }
方案2:直接获取父级a标签的完整文本校验
父元素的默认文本会自动拼接所有子元素的文本内容,不需要手动拼接,实现更简单:
String targetTitle = "Frat Brothers (2013)"; WebElement linkElement = driver.findElement(By.cssSelector("a[href='/frat-brothers']")); if (linkElement.getText().trim().equals(targetTitle)) { linkElement.click(); }
内容的提问来源于stack exchange,提问作者Old_the_jackal
相关产品推荐
相关产品推荐

