作为硒测试开发人员,我总是习惯用的webdriver知识仅限于在开发测试脚本工具的使用.但我好奇地想知道如何使用的webdriver页面上的浏览器进行交互的内部.
我的问题是:
Selenium RC使用代理来消除同源策略的问题.webdriver的是如何解决同源策略的问题?
WebDriver使用JSON有线协议.但在的webdriver的部件,在使用JSON Wire协议?它是在不同的浏览器的驱动程序使用的?或者是它的语言绑定API中使用?
WebDriver driver = new ChromeDriver();
driver.get("http://www.google.com");
WebElement searchField = driver.findElement(By.name("q"));
searchField.sendKeys("selenium");
这将真正帮助,如果有人能详细解释这些给我.我想做出关于webdriver的内部工作,希望能够帮助任何人搜索该主题的社区维基.提前致谢!
我对ByChained类的文档提到的内容非常困惑.它说:
用于使用一系列其他查找来定位文档中的元素的机制.此类将查找按顺序匹配每个定位符的所有DOM元素,例如driver.findElements(new ByChained(by1,by2))将查找与by2匹配的所有元素,并显示在与by1匹配的元素下.
code.google.com 上的selenium 也存在一个问题,为ByChained类引发,有人评论说它用于使用多个定位器查找元素/元素.
我不明白.为什么by1和by2是两个不同元素的定位器?当我最初遇到这个课程时,我觉得通过使用不同的定位器来帮助定位元素.因此,如果一个定位器不起作用,则下一个定位器将起作用.但是当我几乎使用这个类时,它表现得非常奇怪并且一直抛出NoSuchElementException.
例如,如果我的html是:
<html>
<body>
<div id="details">
<input id="firstName" class="personName" type="text"/>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我想通过在ByChained中使用两个定位器来找到输入字段:
1.使用By.id("firstName")
2. usingBy.className("personName")
所以我的代码变成:
By myBy = new ByChained(By.id("firstName"),By.className("personName"));
driver.findElement(myBy);
Run Code Online (Sandbox Code Playgroud)
执行时,我得到了NoSuchElementException.我期待如果我的第一个By不起作用,那么它将在系列中找到具有下一个By的元素.
有人可以解释这个类如何使用一个例子,在哪些情况下可以使用它?
我想根据源,目标IP地址和协议的过滤器组合过滤Wireshark的监控结果.所以,现在我可以使用此过滤器表达式过滤掉目标和源IP地址的活动:(ip.dst == xxx.xxx.xxx.xxx && ip.src == xxx.xxx.xxx. xxx)|| (ip.dst == xxx.xxx.xxx.xxx && ip.src == xxx.xxx.xxx.xxx)
这给了我作为目标和源的2个ip地址的请求响应活动,这取决于它是请求还是响应.但现在,我正在获得HTTP和TCP的结果.我想只看到HTTP的结果.
有什么建议怎么做?
我的selenium webdriver转到页面并等待该页面完成加载.如果30秒超时则脚本失败.
反正有没有让webdriver在30秒后停止加载页面(比如按下浏览器上的'x')?这将阻止我的司机超时.
我正在使用Chromedriver.
我正在JMeter上录制基于JSF的Web应用程序的https会话,但它无法正常工作.
目标应用程序托管在: AWS
JMeter版本: 2.9 r1437961
浏览器: Chrome版本29.0.1547.65
Java: java版本"1.6.0_27"
OpenJDK运行时环境(IcedTea6 1.12.5)(6b27-1.12.5-0ubuntu0.12.04.1)
OpenJDK Server VM(build 20.0-b12,混合模式)
OS: Ubuntu 12.04
代理服务器配置:
端口:8084
目标控制器:测试计划>线程组
捕获HTTP标头已选中.
HTTP样本设置:
类型:未选中.按照重定向并使用KeepAlive进行检查.
要排除的网址格式:
1.已添加建议的排除
2..*\.jsf
被抛出的异常(来自JMeter.log):
ERROR - jmeter.protocol.http.proxy.Proxy: java.net.SocketException: Connection closed by remote host
at sun.security.ssl.SSLSocketImpl.checkWrite(SSLSocketImpl.java:1377)
at sun.security.ssl.AppOutputStream.write(AppOutputStream.java:62)
at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140)
at org.apache.jmeter.protocol.http.proxy.Proxy.writeToClient(Proxy.java:404)
at org.apache.jmeter.protocol.http.proxy.Proxy.run(Proxy.java:218)
ERROR - jmeter.protocol.http.proxy.Proxy: Problem with SSL certificate? Ensure browser is set to accept the JMeter proxy cert: Connection closed by remote host java.net.SocketException: Connection closed by remote host
at sun.security.ssl.SSLSocketImpl.checkWrite(SSLSocketImpl.java:1377) …
Run Code Online (Sandbox Code Playgroud) 我知道如何在selenium webdriver中加载chrome扩展.但我没有看到任何帖子/博客描述我如何从Selenium 运行 chrome扩展.
我需要明确地运行chrome扩展/使其从selenium执行它的功能.例如,我想使用此扩展程序使用Selenium Webdriver 清除Chrome浏览器的缓存.
我可以在第一时间做到吗?或者Selenium WebDriver是否只帮助我将扩展程序加载到浏览器实例中并将其保留在那里?
.net selenium google-chrome-extension selenium-chromedriver selenium-webdriver
我在 Ubuntu Linux VM 上并尝试在其上运行 minikube。
我通过 homebrew 安装了 kubectl,然后按照以下安装指南安装了 minikube:
kubectl:https: //kubernetes.io/docs/tasks/tools/install-kubectl/#install-kubectl-on-linux
minikube:https://kubernetes .io/docs/tasks/tools/install-minikube/
我启动了 minikube,sudo minikube start --driver=none
它有以下输出:
当我运行命令: 时kubectl get pods
,出现错误:
Error in configuration:
* unable to read client-cert /home/jenkins/.minikube/profiles/minikube/client.crt for minikube due to open /home/jenkins/.minikube/profiles/minikube/client.crt: permission denied
* unable to read client-key /home/jenkins/.minikube/profiles/minikube/client.key for minikube due to open /home/jenkins/.minikube/profiles/minikube/client.key: permission denied
Run Code Online (Sandbox Code Playgroud)
我上面安装的用户是/home/jenkins
. 我不确定出了什么问题。有人可以帮忙吗?
我想selected = "selected"
使用XPath提取器提取具有该属性的第一个值.但它似乎对我不起作用.
我从中提取值的html是:
< select id="ddLocation" name="ddLocation" class="DDlocation" size="1" onchange="jsf.util.chain(this,event,'onLocationChange();,'mojarra.ab(this,event,\'valueChange\',\'@this\',0)')"> <br>
< option value="43" selected="selected">Pune</option> <br>
< option value="44">Agra< /option> <br>
< option value="45">Guntur< /option> <br>
< option value="46">Kochi< /option> <br>
< option value="73">Kothrud< /option> <br>
< option value="153">Ratnagiri< /option> <br>
< option value="156">Baner< /option>
Run Code Online (Sandbox Code Playgroud)
我的XPath查询是:
//select[@id="ddLocation"]/option[1]/@value
Run Code Online (Sandbox Code Playgroud)
这是错的吗?
任何人都可以建议我更好/正确的方法吗?