javascript - Selenium 网络驱动程序 : Highligh an Element at some Coordinates

标签 javascript selenium automation

我正在使用 Selenium Webdriver 自动化使用 HTML5 构建的应用程序。现在我想突出显示我点击的点。突出显示元素并不是什么大问题,但我需要知道它被单击的坐标。对于前。我正在单击坐标 200,500 处的 Canvas 元素。

如果我实现java脚本来突出显示元素,那么它将突出显示整个Canvas元素,因为我想突出显示单击的点(200,500)。请提供您的答案。提前致谢。

我正在将 Specflow 与 C# 一起使用。

点击 Canvas 坐标处的代码:

public void ClickCanvasElement(IWebDriver driver, By locator, int offsetX, int offsetY)
        {
            try
            {
                IWebElement element = FindElement(driver, locator);
                Actions actions = new Actions(driver);
                for (int i = 0; i < 10; i++)
                {
                    if ((element.Displayed == true && element.Enabled == true) || element == null)
                    {
                        actions.MoveToElement(element, offsetX, offsetY).Click().Perform();
                        break;
                    }
                    System.Threading.Thread.Sleep(500);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }

最佳答案

您可以尝试下面的代码:- 您需要使用 javascript 来突出显示特定元素。

 public void ClickCanvasElement(IWebDriver driver, By locator, int offsetX, int offsetY)
            {
                try
                {
                    IWebElement element = FindElement(driver, locator);
                    Actions actions = new Actions(driver);
                    for (int i = 0; i < 10; i++)
                    {
                        if ((element.Displayed == true && element.Enabled == true) || element == null)
                        {
                            actions.MoveToElement(element, offsetX, offsetY).Click().Perform();


    IJavaScriptExecutor js = (IJavaScriptExecutor)driver;

        js.ExecuteScript("arguments[0].setAttribute('style', arguments[1]);"element","color: red; border: 3px solid red;");

                            break;
                        }
                        System.Threading.Thread.Sleep(500);
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                }
            }

关于javascript - Selenium 网络驱动程序 : Highligh an Element at some Coordinates,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45214935/

相关文章:

Javascript:这段代码有什么作用?

javascript - 使用 html2canvas 隐藏 div 的屏幕截图

testing - 有没有人为 QTP 或 Selenium 使用 Open2Test(关键字驱动)框架?

c# - WPF 应用程序的测试自动化

javascript - 为什么我的请求正文为空?

javascript - jQuery滚动图像动画: Moving in the wrong direction

java - 我正在从命令行运行 testng 但没有执行任何测试

java - 当我的脚本失败时,用自定义错误代替堆栈跟踪的 TestNG 报告

selenium - 使用 Selenium Webdriver 测试 ZK 应用程序

java - 阻止应用程序的所有其他输入并通过 Java 包装器对其进行控制