Tag: selenium webdriver

使用WebDriver单击新打开的选项卡中的链接

有人可以在这种情况下帮助我: 场景是:有一个网页,我只在新标签中打开所有指定的链接。 现在我想点击新打开的Tab中的任何一个链接。 尝试下面,但它只是单击主/第一个选项卡中的一个链接,而不是在新选项卡中。 new Actions(driver).sendKeys(Keys.CONTROL).sendKeys(Keys.NUMPAD1).perform(); driver.findElement(By.tagName(“body”)).sendKeys(Keys.CONTROL, Keys.TAB); List links=driver.findElements(By.xpath(“//a[contains(@href,’http’)]”)); links.get(0).click();

如何在selenium webdriver中从一个弹出窗口切换到另一个弹出窗口

我的情景是: 主窗口 – >做一些活动。 单击“保存”按钮 – >“确认”弹出,然后单击“确定”和“取消”按钮。 单击确认弹出窗口上的确定按钮 – >使用确定按钮弹出另一个成功弹出窗口。 弹出成功后单击“确定”按钮。 切换到主窗口。 PopUp上面是HTML弹出窗口。 我如何在selenium中处理上述情况? 我是selenium的新人。 请帮助我。我坚持上述观点。 码 String ParentWindow = driver.getWindowHandle(); //switching from parent to pop up window for (String Child_Window : driver.getWindowHandles()) { driver.switchTo().window(Child_Window); WebDriverWait wait = new WebDriverWait(driver, 30);// 1 minute wait.until(ExpectedConditions.visibilityOfElementLocated(By.‌​name(“test”))); driver.findElement(By.xpath(“//input[@value=’test’]”)).click‌​(); } driver.switchTo().window(ParentWindow); HTML Saveでよろしいですか?? //当点击第一个弹出窗口的OK按钮时,相应的div将被销毁,并且会为第二个弹出新的div Information 登録完了

设置selenium webdriver的默认执行速度

我正在用webdriver运行一些GUI测试。 我直接从selenium IDE导出了一些测试。 在这个测试中,由于加载了下拉,我不得不降低IDE的运行速度。 如何在Selenium webdriver中减慢测试速度? 我已经把 driver.manage().timeouts().implicitlyWait(50, TimeUnit.SECONDS); 它一直在快速运行。 我知道睡眠选项,但这不是我想要的,我想改变webdriver的默认执行速度。 这是我的代码: import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import java.util.concurrent.TimeUnit; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.openqa.selenium.Alert; import org.openqa.selenium.By; import org.openqa.selenium.NoAlertPresentException; import org.openqa.selenium.NoSuchElementException; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; public class ProfileCheck { private WebDriver driver; private String baseUrl; private boolean acceptNextAlert = […]

Selenium等待Element中的任何人可见

单击特定按钮 – 我的测试站点将打开模态窗口。 但是模态窗口打开是不同的,要么用modal window 1 or modal window 2打开,要么用modal window 1 or modal window 2 两者都有不同的标题,不同的选项和不同的定位器。 现在我应该等到模态window open Either 1 or 2 。 是否可以等到一个模态窗口(WebElement)可见? 我在WebDriverWait方法中搜索过,但所有方法都要等到特定WebElement可见或可点击。 我找不到一个更好的方法来等到任何一个可见。 你能建议任何一种方法来解决这种情况吗?

如何扩展Selenium By.class以创建更多灵活性?

如何扩展Selenium By.class以创建更多灵活性? 我查看了By.class ,我不太清楚如何处理这个问题。 看起来我需要创建一个接口类和一个静态By类,比如ByJavascriptGetWebElement ,以便创建这种包装器? 我希望能够称之为: By.javascript(“return document.querySelector(\”div#item div\”);”, el ); 我也听说过一种更简单的方法,但我更喜欢用更传统的方式做到这一点: public By byJavascriptGetElement( WebElement we ) { return By. ??? } 有任何想法吗?

Selenium Webdriver:处理NoSuchElementException的最佳实践

经过大量的搜索和阅读,我仍然不清楚使用Webdriver处理失败的断言的最佳方法。 我原以为这是一个常见的核心function。 我想做的就是: 寻找一个元素 如果有的话 – 告诉我 如果没有 – 告诉我 我想为非技术受众呈现结果,因此让它使用完整堆栈跟踪抛出’NoSuchElementExceptions’是没有用的。 我只想要一个好消息。 我的测试: @Test public void isMyElementPresent(){ // WebElement myElement driver.findElement(By.cssSelector(“#myElement”)); if(driver.findElement(By.cssSelector(“#myElement”))!=null){ System.out.println(“My element was found on the page”); }else{ System.out.println(“My Element was not found on the page”); } } 当我强制失败时,我仍然会抛出NoSuchElementException。 我还需要试一试吗? 我是否可以在不需要System.out.println的情况下合并Junit断言和/或Hamcrest来生成更有意义的消息?

与findElement()一起使用的最有效的选择器是什么?

使用Selenium Web测试时,有几种方法可以识别WebElements。 根据我的经验,我使用了以下选择器: 类名 – By.className() CSS选择器 – By.cssSelector() ID – By.id() 链接文本 – By.linkText() 名称 – By.name() 标签名称 – By.tagName() XPath – By.xpath() 显然,当只有一个选项可用于定位元素时,我们必须使用那个,但是当可以使用多个方法时(例如:下面的div),应该如何确定使用哪种方法? 选择器是否比其他选择器效率更高? 有些更耐用吗? Here’s a div

Selenium:未知错误:由于页面崩溃而删除了会话

当我在chrome上运行我的selenium代码时出现以下错误,但它在firefox上运行正常。 org.openqa.selenium.WebDriverException: unknown error: session deleted because of page crash from unknown error: cannot determine loading status from tab crashed (Session info: chrome=51.0.2704.84) (Driver info: chromedriver=2.20.353124 (035346203162d32c80f1dce587c8154a1efa0c3b),platform=Mac OS X 90.11.4 x86_64) (WARNING: The server did not provide any stacktrace information) Command duration or timeout: 55.19 seconds Build info: version: ‘2.53.0’, revision: ’35ae25b’, time: ‘2016-03-15 17:00:58’ […]

如何在Selenium中找到具有特定文本的跨度? (使用Java)

我在使用java在Selenium中找到span元素时遇到了麻烦。 HTML看起来像: Settings 而且我尝试了下面没有运气: By.xpath(“span[.=’Settings’]”) 和 By.xpath(“span[text()=’Settings’]”) 和 By.cssSelector(“div[class=’settings-padding’]”)) 以及其他一些类似的尝试。 你能指点我做最好的方法吗? 在它看来我经常在eclipse中得到“无法找到元素”错误。

如何使用IE更改默认下载目录(Internet Explorer 11)

在这篇文章中,我看到了为Chrome和Firefox设置下载目录的解决方案如何在使用chrome driver / firefox驱动程序时更改Webdriver中的文件下载位置 这些对我来说是完美的(接受的答案),但是我无法找到有关使用Internet Explorer 11执行此操作的任何信息。有谁知道我在哪里可以找到这些信息?