Tag: webdriver

使用Java与Python的Selenium Webdriver

我想知道使用Selenium Webdriver与python绑定与Java的优缺点。 到目前为止,似乎java路线有更好的文档。 除此之外,似乎你喜欢哪种语言,但也许我错过了一些东西。 谢谢你的任何输入!

WebDriver无法可靠地单击链接或按钮

我一直在拼命想让WebDriver可靠地点击按钮或链接,但它只是不想合作。 我尝试了不同的方法,从设置隐式超时,到下面的代码,假设点击并等待元素出现。 下面的代码片段是在互联网上找到的,它是我最接近可靠的按钮或链接点击。 除了它在调试模式下的工作方式与我在夜间回归测试中执行时的工作方式不同。 有没有人知道在浏览器中点击按钮或链接的另一种方法? 或者我应该使用Selenium 1而不是WebDriver,因为它太新了而无法可靠地使用。 public void waitAndClick(WebDriver driver, By by) { WebDriverWait wait = new WebDriverWait(driver, 10000, 2000); Function waitForElement = new waitForElement(by); wait.until(waitForElement); Actions builder = new Actions(driver); builder.click(driver.findElement(by)) .perform(); } private class waitForElement implements Function { private final By by; private String text = null; public waitForElement(By by) { this.by […]

使用WebDriver暂时绕过隐式等待

当使用隐式等待时, 正如这里所建议的那样 ,我仍然有时想要断言元素的直接不可见性或不存在。 换句话说,我知道应该隐藏一些元素,并且希望我的测试能够快速地进行断言,而不需要花费几秒钟因为(否则有用)隐式等待。 我试过的一件事就是像这样的辅助方法: // NB: doesn’t seem to do what I want private boolean isElementHiddenNow(String id) { WebDriverWait zeroWait = new WebDriverWait(driver, 0); ExpectedCondition c = invisibilityOfElementLocated(By.id(id)); try { zeroWait.until(c); return true; } catch (TimeoutException e) { return false; } } 但是在上面的代码中,对until()的调用仅在隐式等待时间过去之后才返回,即它没有按我想要的那样做。 到目前为止,这是我发现的唯一方法: @Test public void checkThatSomethingIsNotVisible() { turnOffImplicitWaits(); // … the actual […]

如何实现@FindBy注释的用户类型?

我试图从中得到: @FindBy(xpath = “//div/span/img”) public WebElement addNew; @FindBy(xpath = “//tr[2]/td[12]”) public WebElement save; @FindBy(xpath = “//td/div/input”) public WebElement entryIdel; @FindBy(xpath = “//textarea”) public WebElement authorFieldel; @FindBy(xpath = “//td[3]/div/textarea”) public WebElement titleFieldel; 那: @FindBy(xpath = “//div/span/img”) public Button addNew; @FindBy(xpath = “//tr[2]/td[12]”) public Button save; @FindBy(xpath = “//td/div/input”) public InputBox entryIdel; @FindBy(xpath = “//textarea”) public InputBox […]

在Selenium中每个元素使用多个定位符的优点/缺点?

我正在测试一个仍在开发中的网站。 DOM中元素的id,类,文本或位置通常会发生变化。 然后我一直在使用的定位器将无法再找到该元素。 但function仍然正常运行。 当没有实际的回归时,我不希望几个测试失败。 因此,我没有为每个元素设置一个定位器,而是有一组定位器。 public static final ArrayList LOGIN_ANCHOR_LOCATORS = new ArrayList(); static { LOGIN_ANCHOR_LOCATORS.add(By.id(“loginLink”)); LOGIN_ANCHOR_LOCATORS.add(By.linkText(“Login”)); LOGIN_ANCHOR_LOCATORS.add(By.xpath(“/html/body/div[5]/a”)); } 我找到元素的方法如下所示: public WebElement locateElement(ArrayList locators){ // create an element to return WebElement element = null; // until the desired element is found… while (element == null){ // loop through the locators for (By locator : […]

FirefoxDriver:如何禁用javascript,css并立即生成sendKeys类型?

使用FirefoxDriver编写测试时 我发现由于javascript和css正在执行,页面加载速度非常慢。 无论如何要禁用它吗? 有可能甚至安装Noscript插件到配置文件? 另外,sendKeys()实际上输出了文本。 但是,对于长文本来说这很慢,无论如何要立即在输入框中键入所有字符串?

如何设置InternetExplorerDriver以使其正常工作

我正在使用WebDriver,我已经下载了InternetExplorerDriver,并想知道在下载后我用它做了什么? 这说是把司机放在我的路上。 不确定他们到底在说什么。 有没有人使用过这个,如果可以的话,你能提供一些如何设置它的详细步骤吗? 我收到以下错误: 必须通过webdriver.ie.driver系统属性设置驱动程序可执行文件的路径 我下载了IE和Chrome驱动程序的可执行文件。 我在哪里设置它?

Selenium Webdriver远程设置

我在我的本地机器上运行selenium-server-standalone.jar,我想在远程机器上编译运行的测试,但我不知道如何让测试连接到将运行浏览器的机器。 任何帮助赞赏。 更新:在我的本地机器上(我将运行浏览器的那台机器)我跑了 java -jar selenium-server-standalone-2.25.0.jar -mode hub 在我的远程机器上(我将运行测试)我跑了 java -jar selenium-server-standalone-2.25.0.jar -role webDriver -hub http://**My ip*:4444 我的代码包含以下内容: @Before public void setUp() throws Exception { DesiredCapabilities capability = DesiredCapabilities.firefox(); driver = new RemoteWebDriver(new URL(“http://**My ip**:4444/wd/hub”), capability); baseUrl = “http://phy05:8080”; driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS); driver.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS); driver.manage().window().setSize(new Dimension(1920, 1080)); 我正在使用Linux,我的测试是用Java编写的

Click()方法并不总是有效

我在Selenium WebDriver中测试时遇到问题。 当程序试图单击按钮时, Click事件并不总是有效。 在一次测试中,一切都很好,在其他测试中则不然。 每个测试都从一页开始。 首先,用户必须从select组件中选择一个选项,然后用户单击一个按钮。 我想知道为什么有一次一切都好,当我第二次运行测试时它不是? 以下是查找和单击按钮的源代码: public void clickContinueBtn() { webElement = driver.findElement(By.xpath(“//div[@class=’btn magenta_s’]/a/span”)); webElement.click(); }

java.lang.OutOfMemoryError:使用apache POI读取excel文件时超出了“GC开销限制”

我们正在使用Apachi POI从excel文件中读取数据,它为我们的Selenium自动化测试用户提供了800行输入数据。 我们已经使用jenkins配置并执行了批处理作业,它工作了一年多。 但现在它显示错误“线程中的exception”主“java.lang.OutOfMemoryError:超出GC开销限制”。 当我们将JVM内存大小增加到1024 MB时,它工作正常。 excel文件大小只有68KB。 但它显示GC错误。 能否帮助我们解决问题的原因。 我们如何能够为这个问题提供永久的解决方案。 Excel工作表中的总行数为800 excel表文件大小为68KB 获取错误消息: Exception in thread “main” java.lang.OutOfMemoryError: GC overhead limit exceeded”. 请在此处找到附带的屏幕截图, 输入图像说明