ai didi

java - Selenium 没有拾取 xpath 上找到的元素

转载 作者:行者123 更新时间:2023-12-02 11:53:12 24 4
gpt4 key购买 nike

使用 xpath 或 CSS 找到元素列表(浏览器控制台中的结果相同)

int alltips = driver.findElements(By.xpath("//div[@class='column medium-12']//div/ul/li")).size();
int alltips1 = driver.findElements(By.cssSelector("ul.feed-tips#Grid > li.feed-item")).size();
System.out.println(alltips);
System.out.println(alltips1);

由于两次打印得到了相同的结果(页面上存在 21 个“li”容器)但是,当 put 在 selenium webdriver 中运行时,我得到了相同的结果,并且结果为零。添加了控制台的屏幕截图

enter image description here

我做错了什么?

这是 HTML 的一部分:

<div class="column medium-12">
<h1>Free Tips</h1>
<p>Here you'll always find the latest tips posted by our international community of sports betting tipsters. If you're ever in need of inspiration for a bet, this is the place to be! </p>
<div class="row">
<ul class="feed-tips" id="Grid" data-sport="" data-country="" data-
league="">

下面的 HTML 看起来如屏幕截图所示:

enter image description here

最佳答案

findElements 如果没有找到元素,则不会抛出错误,因此调用此方法时有可能没有找到元素。

您可以通过使用像这样的 WebDriverWait 来等待 ul 元素可见,然后再调用 findElements

WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id(#Grid)));

这将在抛出超时之前等待最多 10 秒。之后,调用 findElements 方法。此时您知道父 ul 可见

int alltips = driver.findElements(By.xpath("//ul[@id='Grid']/li")).size();

关于java - Selenium 没有拾取 xpath 上找到的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47749468/

24 4 0
文章推荐: Java Swing绘制html格式的字符串
文章推荐: java - 如何暂停newScheduledThreadPool?
文章推荐: java - 无法将 getUrl() 传入 onBindViewHolder?
文章推荐: java - thread.sleep(long millis) 在 Android 中不起作用
行者123
个人简介

我是一名优秀的程序员,十分优秀!

滴滴打车优惠券免费领取
滴滴打车优惠券
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com