java - 使用 Webdriver 突出显示元素后等待几秒钟

标签 java javascript selenium selenium-webdriver

我正在尝试突出显示一个元素。我希望亮点保留大约 5-6 秒,但我无法这样做。 突出显示的代码工作正常,但它只出现一次。我尝试使用 thread.sleep() 来实现此目的,但无法实现。

我可以使用显式等待或任何其他方法为此类突出显示定义条件等待吗?

这是突出显示元素的代码:

import java.util.Set;
import java.util.concurrent.TimeUnit;

import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;

public class HighlightElement {
public WebDriver driver;
private String baseUrl;

public static void main(String[] args) {
    HighlightElement obj=new HighlightElement();
    obj.func();
    // TODO Auto-generated method stub

}
public void func(){
driver=new FirefoxDriver();
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);

baseUrl="http://www.creativebloq.com/netmag/get-started-django-7132932";
driver.get(baseUrl);

WebElement ele=driver.findElement(By.xpath("//*[@id='main-  content']/section/article/div/div/figure[1]/img"));
highlightElement(driver, ele);
try {
    Thread.sleep(5000);
} catch (InterruptedException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
}

public void highlightElement(WebDriver driver, WebElement element) {
for (int i = 0; i < 2; i++)
{
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("arguments[0].setAttribute('style', arguments[1]);", element, "color: yellow;  border: 2px solid yellow;");
js.executeScript("arguments[0].setAttribute('style', arguments[1]);", element, "");
}}
}

我还尝试在 highlighElement() 中使用 sleep 方法,但它也没有达到目的。

最佳答案

你为什么不尝试这样的事情

public void highlightElement(Driver, IWebElement element) 
    {
        for (int i = 0; i < 2; i++)
        {
            IJavaScriptExecutor js = (IJavaScriptExecutor) Driver;
            js.ExecuteScript("arguments[0].setAttribute('style', arguments[1]);", element, "color: yellow;  border: 2px solid yellow;");
            if (element.GetAttribute("style") != null)
            {
                Thread.Sleep(5000);
            }
            js.ExecuteScript("arguments[0].setAttribute('style', arguments[1]);", element, "");
        }
    }

我的是C#。但转换应该不会太难,如果我没有误解你的问题,这应该可行

关于java - 使用 Webdriver 突出显示元素后等待几秒钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24984648/

相关文章:

javascript - 在 JavaScript 中根据子值从 n 维数组中选择一个值

java - 如何让 Selenium 查找具有不同 ID 的元素?

c# - 在 anchor 标记内使用 Selenium 选择图像按钮

java - Selenium 捕获屏幕截图并保存到 sql

java - 在 Java 中使用 BufferedImage 查看大图像尺寸

javascript - 无法更新状态内的嵌套对象

java - Java servlet API 中是否有通用的 RequestContext?

javascript - 从选择下拉列表中隐藏/显示标签和段落

java - 如何从 aws lambda 触发 AWS 步骤函数

java - 加密文件并签名