Tag: webdriver

使用java的空间webdriver类名

这个问题在jquery中得到了很好的答案,我想知道是否有人可以在Java中给出一个这样的例子吗? 我正在做driver.findElement(By.className(“current time”)).click(); 空间是问题,我在链接上看到了解释,但我不确定如何在java中处理它,并且无权更改类名。 粘贴我在Firefox中检查id的示例:下面的cssSelector示例不起作用,但我可能会遗漏一些东西。 url

如何使用Selenium WebDriver和Java获取选定的选项

我是Selenium的新手,我被困在这里: 我想使用Selenium WebDriver 获取 下拉列表 的选定标签或值,然后在控制台上打印 。 我可以从下拉列表中选择任何值,但我无法检索所选值并将其打印出来。 Select select = new Select(driver.findElement(By.id(“MyDropDown”))).selectByVisibleText(data[11].substring(1 , data[11].length()-1)); WebElement option = select.getFirstSelectedOption(); 但我所有的努力都是徒劳的任何帮助都将受到赞赏。 提前致谢 :)

如何实现可以返回不同PageObjects的WebDriver PageObject方法

我刚刚开始使用WebDriver ,我正在尝试学习最佳实践,特别是使用PageObjects和PageFactory 。 我的理解是,PageObjects应该在网页上公开各种操作,并将WebDriver代码与测试类隔离开来。 通常,相同的操作可能导致根据所使用的数据导航到不同的页面。 例如,在此假设的登录方案中,提供管理员凭据会将您带到AdminWelcome页面,并且提供客户凭据会将您带到CustomerWelcome页面。 所以实现这个的最简单方法是公开两个返回不同PageObjects的方法…… 登录PageObject package example; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.FindBy; import org.openqa.selenium.support.PageFactory; public class Login { @FindBy(id = “username”) private WebElement username; @FindBy(id = “password”) private WebElement password; @FindBy(id = “submitButton”) private WebElement submitButton; private WebDriver driver; public Login(WebDriver driver){ this.driver = driver; } public AdminWelcome loginAsAdmin(String user, String […]

如何在文本框中找到并键入内容

public class testFluent { WebDriver driver; @Before public void setUp(){ driver = new FirefoxDriver(); driver.manage().window().maximize(); driver.manage().deleteAllCookies();} @Test public void myFirstFluent(){ WebElement element; driver.get(“http://www.yahoo.com”); element = myDynamicElement(By.id(“//*[@id=’p_13838465-p’]”)); System.out.println(“Element found”); } public WebElement myDynamicElement(final By locator){ Wait wait = new FluentWait(driver) .withTimeout(10, TimeUnit.SECONDS) .pollingEvery(100, TimeUnit.MILLISECONDS) .ignoring(NoSuchElementException.class); WebElement element = wait.until(new Function(){ public WebElement apply(WebDriver drv){ return drv.findElement(By.id(locator)); […]

如何捕获webdriver中页面发出的所有请求? Browsermob还有其他选择吗?

我正在使用Selenium2 / WebDriver来测试我的Web应用程序。 所有测试都是用Java编写的,并与Maven一起运行。 在使用webdriver打开页面时,我想捕获页面发出的所有请求(图像,js和css文件等)。 我使用这些数据主要有两个原因 检查呼叫中的404(以及其他错误) 检查分析代码是否正常工作(检查它是否正在发送正确的请求) 根据项目,我使用Firebug和Netexport或Browsermob代理。 在这两种情况下,我都可以轻松获取HAR(Html ARchive)文件,解析它并提取我想要的数据。 问题在于:我对这些解决方案都不满意。 当页面包含加载太长时间的video时,我特别遇到获取HAR文件的问题。 我正在寻找更稳定的东西。 所以,问题是: Browsermob还有其他选择吗? 我知道FiddlerCore,但它是一个.NET库,我的测试是用Java编写的。 我也听说过Ajax DynaTrace,我知道有一些方法可以将它与Selenium集成,但我发现的文档是Selenium-RC而不是WebDriver。 有没有办法将DynaTrace与WebDriver集成或使用FiddlerCore与Java? 有没有其他方法来实现我提到的目标? 我正在寻找一个可以从我的代码中轻松控制的代理。 将数据导出到HAR将是一个很好的选择。

Webdriver – 如何检查浏览器是否仍然存在或仍然打开?

我想检查浏览器是否仍然存在,如果不存在,那么我想打开一个新的浏览器! webdriver中是否有api可用于检查浏览器是否仍然存在?

Selenium webdriver可以附加到已打开的浏览器窗口吗?

经过大量的搜索后,我相信这个function还没有实现 – 但有没有人知道我用selenium1 / 2为Java实现的任何解决方法? 如果另一个进程启动了浏览器实例,那么webdriver可以连接到该窗口吗? 任何可以尝试的解决方法。 任何指针都非常感谢。 谢谢!!

使用BrowserMob-Proxy REST api设置自定义标头

我有一个在端口9091上运行的browsermob代理。我正在尝试使用browsermob-proxy REST API来设置自定义标头。 当我通过代理使用Selenium向我的应用程序发出请求时,我看不到我的应用程序控制台中打印的标题。 以下是我的代码。 请求正文基于此处的文档。 我的要求是使用BrowserMob代理API而不是它的Java库用于这个特定的用例。 我在下面的代码中做错了什么? Proxy proxy = new java.net.Proxy(java.net.Proxy.Type.HTTP, new InetSocketAddress(“localhost”, 9091)); String bpmUrl = “http://localhost:8787/proxy/9091/interceptor/request”; Client client = Client.create(); String requestBody = “request.getMethod().addHeader(\”custom-header\”, \”Bananabot/1.0\”);”; WebResource resource = client.resource(bpmUrl); resource.type(MediaType.TEXT_PLAIN_TYPE).post(requestBody); String url = “http://localhost:8004”; DesiredCapabilities capabilities = DesiredCapabilities.firefox(); capabilities.setCapability(CapabilityType.PROXY, proxy); WebDriver driver = new FirefoxDriver(capabilities); driver.get(url); driver.quit(); 编辑1 我试过@ Erki的解决方案,我觉得应该可行,但事实并非如此。 这里有什么遗漏? […]

Java webdriver:元素不可见exception

我有以下问题。 我有一个隐藏的下拉列表,所以当我进行选择并运行测试时,我收到以下错误: org.openqa.selenium.ElementNotVisibleException: element not visible: Element is not currently visible and may not be manipulated (Session info: chrome=30.0.1599.101) 这是我的选择: Select s = new Select(dropDown); s.selectByVisibleText(“CHARGEBACK”); 是否有一个漫步它来操纵隐藏的元素? 我在其中一个post中找到了以下代码: JavascriptExecutor jse = (JavascriptExecutor) driver; jse.executeScript(“arguments[0].scrollIntoView(true);”, element); 这是html代码: Seleccione un Registro SECURITY CALL CENTER CHARGEBACK PREVENÇÃO A FRAUDE ANALISE DE CREDITO SUPORTE A CONTA REGULARIZAÇÃO FINANCEIRA 它在这种情况下不起作用。 […]

如何在网格上运行时关闭ChromeDriver?

我目前正在使用带有Selenium Grid 2的RemoteWebDriver通过TestNG套件运行我的测试。 这适用于Firefox和IE。 现在我添加了Chrome并且测试运行正常,但是在套件的所有测试之后调用driver.quit()时总是得到一个Exception(适用于FF和IE)。 Exception看起来像这样: Error communicating with the remote browser. It may have died. sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:188) at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:145) at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:472) at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:476) at org.openqa.selenium.remote.RemoteWebDriver.quit(RemoteWebDriver.java:346) at setups.StandardChromeSetup.tearDown(StandardChromeSetup.java:42) 19 lines not shown Caused by Error communicating with the remote browser. It may have died. org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:467) at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:476) […]