- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用 ZK 时,我有开发 ID (id="foo"
)。如何使用 Selenium 3 获取它的 DOM 节点?
最佳答案
这涉及几个步骤。首先,您需要使用客户端 JavaScript 定位 DOM 节点。 ZK提供功能window.jq()
为了那个原因。此函数使您可以访问 jQuery 实例(请参阅 https://www.zkoss.org/wiki/ZK_Client-side_Reference/General_Control/Client-side_selection_of_elements_and_widgets )。
要区分 DOM 和 ZK ID,请使用 #
和$
分别。
所以最终的 JavaScript 应该如下所示:
jq('$foo')
要运行此 JavaScript,请使用 driver.executeScript()
。您可能还想使用上下文(开发 ID 通常仅在 ZK 父元素中是唯一的)。
结果是一个 jQuery 集,例如 ChromeDriver 无法处理(您将收到 javascript error: circular reference
错误)。所以您需要调用toArray()
根据结果将 jQuery 对象转换为具有纯 DOM 节点的数组。 ChromeDriver 知道如何将它们转换为 Java。剩下的就是从 JavaScript 返回这个数组。然后您将获得 List<WebElement>
在 Java 方面。
我创建了一个By
定位器:
public class ByZKId extends By {
private String id;
private WebElement context;
public ByZKId(String id) {
this.id = "$" + id;
}
public ByZKId(String id, WebElement context) {
this.id = "$" + id;
this.context = context;
}
@Override
public List<WebElement> findElements(SearchContext context) {
if (context == null) {
return executeJavaScript("return jq(arguments[0]).toArray();", id);
}
return executeJavaScript("return jq(arguments[0], arguments[1]).toArray();", id, this.context);
}
@Override
public String toString() {
return "ByZKId: [" + id + "]";
}
}
关于java - 如何使用 Selenium 3 定位 ZK DOM 节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58080921/
我创建了一个带有列表框和按钮的网页,问题是当页面加载时,两个组件的右侧都会出现一个空白区域,但是如果调整页面大小,这些空白区域就会消失。
我正在使用 ZK 图表进行项目使用 MVC 方法,我想做的就是更改背景或向特定列添加指南(具有不同颜色),例如索引为 3 的列:我想要实现的目标 这是我的图表: 这是我想要的,在索引为 3 的列中使用
我正在集成 jquery 和 zk 项目。我的目标是将值从 js/jquery 端传递到 java 端,但徒劳无功。这是我引用的代码:use zAu to send data from client
尝试通过 ZK 6.0.1 Component Development Essentials 创建自定义 UI 组件。尝试使用自定义组件时,日志中总是出现错误“http://localhost:808
我正在使用 Zk 框架并尝试从 zhtml 页面获取 url 参数。我试过: Executions.getCurrent().getParameter("param"); 尽管我在客户端尝试了 zsc
您好,我正在尝试比较 zk 和 gwt 的性能。 在我的比较中,如果框架本身将一些代码转换为 js 就可以了(比如 gwt),我不能自己编写任何 javascript,但我不能自己编写 js 在以上述
当 ZK 组件被销毁或分离时,是否有可能通知监听器? 我希望不同的组件组合器通过事件队列进行通信。为此,我将这些组件的监听器订阅到事件队列。现在我需要知道组件或其 Composer 何时被销毁才能取消
我用 struts 1 配置了 zk。我创建了一个列表并在 session 中设置。 List nameList = new ArrayList(); nameList.add( "xxx" ); n
我想基于 zk 组合框制作新的 zk 组件,以保存以前输入的历史记录。我想将这些先前的输入存储在客户端的 localStorage 中。所以我必须使用 JavaScript 在客户端填充组合框,但不知
我在我的应用程序中使用 ZK colorbox,我想将 Colorbox 的 getRGB() 方法的 RGB 值转换为十六进制。 我有什么办法可以做到这一点吗? 最佳答案 您可以使用 org.zko
是否可以将 Spring bean 直接注入(inject)到 ZK backing bean 中? 在教程中,例如 this我只找到了一个示例,其中应用程序上下文是从复杂的 Web 应用程序中手动提
本文整理了Java中org.apache.ignite.spi.discovery.zk.internal.ZookeeperClient.zk()方法的一些代码示例,展示了ZookeeperClie
我安装了 Eclipse Juno 并添加了 ZK Studio 插件。我的Java JDK是1.5。 但是,当我尝试创建新项目时,出现如下错误: The selected wizard could
我收到以下异常 org.zkoss.zk.ui.UiException 和 java.lang.NumberFormatException。有人可以帮忙吗?我的堆栈跟踪如下: Nov 08, 2013
我正在尝试对现有的 ZK Controller 进行单元测试,并且我想找到一种方法来在对我的 Controller 进行单元测试时处理如下调用, Sessions.getCurrent().setAt
我正在运行 Spark 2.0.2 和 Mesos 0.28.2。 我正在尝试向 Spark 提交一个应用程序,使用 ZooKeeper 管理的 Mesos 集群作为主节点: $SPARK_HOME/
当我在MVVM方法的包含页面中使用Hflex属性时,它不起作用。 当我在另一个页面中包含某个页面时,就会发生此问题,并且此页面的组件的大小由hflex属性控制。我已经尝试过在父窗口加载时使用inval
我在带有zk-grails插件的grails 2.3.11中有一个应用程序。当我执行Spring Security Core集成进行身份验证时,zul页面会停止响应,并出现以下错误:“服务器暂时无法使
ZK支持检查元素是否有焦点吗? HtmlBasedComponent 具有 focus() 和 setFocus(boolean) 来设置焦点..但我没有看到任何 getFocus(). 具体来说,我
关于如何干净、稳健地将用户重定向回上一页有什么想法吗? 如果上一页位于应用程序本身内,我只关心将它们重定向回来。我曾考虑过在用户的 session 中存储某种 DIY 历史记录,但这似乎并不干净或健壮
我是一名优秀的程序员,十分优秀!