gpt4 book ai didi

java - 在 web 元素中查找动态样式属性

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

我在提取完整样式属性时遇到问题,因为它的一部分仍然没有到达 DOM - 它的图像有时需要 1-2 秒才能加载到屏幕中,所以会发生什么一个带有属性的字符串,但当图像从服务器到达时它会发生变化。我正在执行 WebDriverWait 以使元素在 DOM 中可见,但是当我尝试获取其“style”属性(具有“...;(url:"http://....") ",有时它不存在,然后我的 substring() 失败。

这是代码:

@Step("Print Image src url")
public String printImage(Integer imgNo){
WebElement imgStyle = (new WebDriverWait(driver, 15)).until(ExpectedConditions.visibilityOfElementLocated(By.xpath(Consts.ACTIVE_IMG_XPATH_1000 + "/div[" + (currentImg + 1) +"]/div[1]")));
String styleString = imgStyle.getAttribute("style");
Integer idxUrl = styleString.indexOf("url");
Integer idxJpg = styleString.indexOf("jpg");
String urlImage = styleString.substring(idxUrl+5,idxJpg+3); //styleString.indexOf("http"),20
Log.info("V - Image " + imgNo + " src is: " + urlImage);
return urlImage;
}

我可以简单地添加 System.wait(3000),但我不想使用它。有什么想法如何更好地解决它吗?我可以等待字符串的可见性吗?

感谢您的宝贵时间。

最佳答案

HTML 是什么样的?您可以在动态和更改的部分之前使用 containsstarts-with 以及 url 的开头。就像WebDriverWait(driver, 15).until(EC.visibility_of_element_ located(By.XPATH, "//div[contains(@style, 'text']"))

关于java - 在 web 元素中查找动态样式属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51063098/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com