元素定位不到的问题

问题

学员想要获取到帖子的标题

解决过程遇到的其它问题

  1. 在开发者模式中并不能直接定位到 标题文本,而是会把整行的文本定位到

解决方法

  1. 寻找共性:所有的标题,都被这个div包裹着
    企业微信截图_17042667056196
  2. 定位这个class值,再取里面的a标签文本就行了
  3. 取到a标签的文本后显示的是整行的文本,而不是标题问题,使用get_attribute(‘title’)解决,通过图片可以发现 a 标签的 title 属性的值是
ele = driver.find_elements(By.XPATH, "//*[@class='card-body item-list']//div[@class='title media-heading']//a")
    for i in range(len(ele)):
        print(ele[i].get_attribute('title'))

通过获取元素再通过 get_attribute获取到元素中的title

学员后来使用js解决了这个问题

// 创建一个JavaScriptExecutor对象
        JavascriptExecutor jsExecutor = (JavascriptExecutor) driver;
        String script = "var elements = document.querySelectorAll('div.col-lg-9 div.title.media-heading a');" +
                "return Array.prototype.map.call(elements, function(e) { return e.textContent.trim(); });";
        // 使用JavaScriptExecutor执行脚本并获取结果
        Object result = jsExecutor.executeScript(script);

        // 将结果转换为List<String>
        List<String> postTitleList = new ArrayList<>();
        if (result instanceof List<?>) {
            for (Object text : (List<Object>) result) {
                if (text != null) {
                    postTitleList.add((String) text);
                }
            }
        }

        for (int i = 9; i < postTitleList.size(); i++) {
            String postTitle = postTitleList.get(i).split("\\n")[1].trim();