我正在使用 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/