[英]Moving cursor of mouse not working in iframe in selenium C#
我陷入一个奇怪的问题。 用例是在搜索元素之后去搜索结果。 但是,单击搜索按钮后,鼠标指针将无限旋转,直到并且除非有人移动了鼠标指针。 问题是即使我应用偏移移动,鼠标指针仍处于旋转位置。 整个页面嵌套在一个框架中。 Move Offset在以前的方法中有效,但不适用于此操作,我正在附加屏幕截图,并且代码无法在屏幕截图中捕获鼠标指针
屏幕截图
public void AddUser(){
((IJavaScriptExecutor)d).ExecuteScript("arguments[0].click()", Add_User);
Select_Partner.Click();
driver.SwitchTo().Frame("vplfWindow_organizationPicker_0");
Wait.UntilElementDisplayed(driver, Enter_Partner_id);
//Enter_Partner_id.SendKeys(ExcelClassTemp.ReadExcel(Excel, 2, 12, 2));
String str = ExcelClassTemp.ReadExcel(Excel, 2, 12, 2);
((IJavaScriptExecutor)d).ExecuteScript("arguments[0].value=arguments[1];", Enter_Partner_id, str);
ExcelClassTemp.release_Excel(Excel, 2);
Search_Partner.Click();
Actions action = new Actions(driver);
action.MoveByOffset(-1, -1).Perform();
}
在单击按钮之后并移动鼠标之前,您是否尝试过切换回Frame或“ defaultContent”?
也许您试图移动到的搜索元素位于另一个框架中……也许您必须离开实际框架并首先输入另一个框架。
现在正在工作。 由于对象位于框架内,因此不需要按偏移量移动。 U可以简单地使用(((IJavaScriptExecutor)d).ExecuteScript(“ arguments [0] .click();”,Element);
我将建议两种解决方案,要么单击搜索按钮后切换到默认框架,要么将光标移动到页面中的其他元素。 请在下面查看这两种可能对您有帮助的方法。
/**
* @author mbn217
* @Date -----
* @Purpose This method will helps us to switch to a default content
* @param N/A
* @return N/A
*/
public static void switchToDefaultContent() {
log.info("Switching o default content");
driver.switchTo().defaultContent();
}
第二种方法会将鼠标悬停在您在网页中选择的元素上
/**
* @author mbn217
* @Date -----
* @Purpose This method will hover to an element
* @param HovertoWebElement --> element of the webpage
* @return N/A
*/
public static void hoverToWebelement(WebElement HovertoWebElement) throws InterruptedException {
log.info("Hovering over an element");
Actions builder = new Actions(driver);
builder.moveToElement(HovertoWebElement).perform();
Thread.sleep(2000);
}
祝好运!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.