Javascript 在元素上执行单击
我正在开发SeleniumWebDriver。 我需要将鼠标指向一个元素并单击它,我想在这里使用javascript而不是XPath 该元素的javascript不是一个方法,因此我可以直接启动它。 我不知道如何创建一个javascript,以便在自动执行时,该方法应该转到该对象(我只想使用其javascript指向该对象)并执行单击 元素的javascript:Javascript 在元素上执行单击,javascript,selenium,Javascript,Selenium,我正在开发SeleniumWebDriver。 我需要将鼠标指向一个元素并单击它,我想在这里使用javascript而不是XPath 该元素的javascript不是一个方法,因此我可以直接启动它。 我不知道如何创建一个javascript,以便在自动执行时,该方法应该转到该对象(我只想使用其javascript指向该对象)并执行单击 元素的javascript: javascript:setParam(paramOrderNbr, '4'); go('survey_editing.jsp','
javascript:setParam(paramOrderNbr, '4');
go('survey_editing.jsp','actMoveItemUp);
请帮忙
库马尔试试这个:
String cssSelector =.... //css selector of the element you want click on
JavascriptExecutor js = (JavascriptExecutor) driver;
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("var x = $(\'"+cssSelector+"\');");
stringBuilder.append("x.click();");
js.executeScript(stringBuilder.toString());
希望这对你有用干得好。
但是试着修改一点css选择器。
只需尝试map[name=“edit_1”]>area
但在您尝试执行anuthing之前,请使用firebug验证(我使用ffox中的firepath、firebug插件)来验证css选择器是否正确。
然后尝试执行上面提到的代码。它总是有效的
但也有可能尝试另一种方法。如果您的selenium测试与使用onmousehover操作处理指出web元素相连接。
然后,用户可以使用action builder:
WebElement mnuElement;
WebElement submnuElement;
mnEle = driver.findElement(By.Id("mnEle")).click();
sbEle = driver.findElement(By.Id("sbEle")).click();
Actions builder = new Actions(driver);
// Move cursor to the Main Menu Element
builder.moveToElement(mnEle).perform();
// Giving 5 Secs for submenu to be displayed
Thread.sleep(5000L);
// Clicking on the Hidden SubMenu
driver.findElement(By.Id("sbEle")).click();
请检查此问题后立即通知。我已经对您的问题做了一些调查。现在我有点沮丧。 Firebug无法找到
标记中包含的任何内容。
见下图
所以,如果我们不能使用标准的树DOM模型定位元素,那么最后一个假设就剩下了(在我看来)。如果遇到你的问题,我将只分享我将实施的想法。只需尝试使用js单击固定坐标,但这被认为是一种糟糕的方法。这是解释
因此,返回到js定位坐标,单击即可使用
使用所描述的部分,我们定位需要定位的元素的x,y坐标。和使用
您实际上可以执行单击。
诸如此类:
JavascriptExecutor js = (JavascriptExecutor) driver;
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("x.trigger("click", [x, y]);"); //where [x,y] you've already //obtained
js.executeScript(stringBuilder.toString());
顺便说一下,您可以了解高级用户操作。我发现它在某些情况下非常有用
但在我看来,在DOM中找到所需元素仍然是可能的。
希望我的回答能有所帮助)我无法获得该元素的正确/准确的CSS,否则我也可以尝试使用CSS选择器而不是XPath并使用javascript方法。请帮助。你能提供完整的html并指出你需要选择的元素吗?我无法在这里发布完整的html。超过3000个字符。除了CSS选择器,没有其他选项或方法来解决我最初的问题吗?否则,您能否帮助我如何通过查看元素的HTML来为元素构建/创建css选择器路径?谢谢。任何html标记通常都有ID或class属性。此外,每个html标记都有父标记和子标记。整个HTML实际上是用树结构表示的(参见DOM模型)。因此,查找css的想法如下(我举一个例子):html body div[class=“myClass1”]p[id=“someId”]。。。。从HTML的最顶端开始,通过整个结构,从父元素(如我的示例中的HTML)到最后的子元素(如我的示例中的p标记)元素,获取需要定位的节点。注意:尽量避免使用标签ID,例如j_idt12:j_idt13。注意:我使用firebug和firepath-addon-to-firebug来确保我正确找到元素定位器。Anks Eugene,我会尝试使用它,但觉得它可能不起作用。当做