Tag: webdriver

使用webdriver关闭除第一个选项卡/主选项卡以外的所有打开的选项卡

任何人都可以告诉我如何使用webdriver关闭除第一个选项卡/主选项卡以外的所有打开的选项卡? 我在下面尝试过,但它也关闭了所有标签,包括第一个标签。 public static void closeTabs() { String wh1=driver.getWindowHandle(); String cwh=null; while(wh1!=cwh) { new Actions(driver).sendKeys(Keys.CONTROL).sendKeys(Keys.NUMPAD1).perform(); driver.findElement(By.tagName(“body”)).sendKeys(Keys.CONTROL, Keys.TAB); cwh=driver.getWindowHandle(); driver.findElement(By.tagName(“body”)).sendKeys(Keys.CONTROL+”w”); } } 请帮帮我。

WebDriver与ChromeDriver

在Selenium 2 – Java中,有什么区别 ChromeDriver driver = new ChromeDriver(); 和 WebDriver driver = new ChromeDriver(); ? 我已经看过这两个用于各种教程,示例等。

我们如何使用Selenium WebDriver获得加载页面的准确时间?

我们如何使用Selenium WebDriver获得加载页面的准确时间? 我们使用Thread.sleep 我们使用implicitlyWait 我们使用WebDriverWait 但是如何使用Selenium WebDriver获取加载页面的确切时间?

等待元素 – WebDriver – PageObject模式

只要我使用PageObject模式,我就想知道在动态页面上应该在哪里等待元素。 假设我们有测试方法和pageObject类。 我应该做什么(在测试方法中): 点击按钮 等待元素显示 validation元素(包含例如方法isElementDisplayed()) 或者也许有其他好的做法等待元素? 也许我们应该等待在PageObject.class中的方法isElementDisplayed中的元素?

垂直向下滚动并使用java在Selenium WebDriver中向上滚动

任何人都可以帮助我使用Java自动使用WebDriver 向下滚动function吗? 在我的情况下,对于雅虎邮件,一旦我垂直向下滚动鼠标, “Sign In”就会显示( 可见 )。

防止在selenium webdriver测试中加载外部内容

问题是: 是否可以告诉由selenium webdriver控制的浏览器不从外部源加载任何内容,或者不从指定的域列表加载资源? 底色: 我有一个网页,我用selenium webdriver编写一个基于java的测试脚本 – 我无法更改页面,我只需编写测试。 网站从其他域加载的某些外部内容存在问题。 外部的东西是我的测试实际上不需要的一些javascript代码,但是有问题的页面包括。 现在的问题。 有时外部源是超级慢的,阻止webdriver在给定的页面加载超时(20秒)内加载页面。 我的测试实际上运行正常,因为页面实际上已加载 – 所有html都在那里,所有内部脚本都被加载并且可以工作。 随便想一想: 有不同浏览器的扩展可以做我要求的,但我需要使用几个浏览器运行我的测试,即chrome,firefox和phantomjs。 而且没有像phantomjs扩展这样的东西。 如果可能的话,我需要一个纯粹基于webdriver技术的解决方案。 不过,我愿意为每个浏览器编写一个单独的解决方案。 我很感激有关如何解决这个问题的任何想法。

扩展Selenium WebDriver WebElement?

我正在遵循Selenium建议的页面对象模式,但是如何为页面创建更专业的WebElement。 具体来说,我们的页面上有表格,我编写了一些辅助函数来获取表格的特定行,返回表格的内容等。 目前,这是我创建的具有表的页面对象的片段: public class PermissionsPage { @FindBy(id = “studyPermissionsTable”) private WebElement permissionTable; @FindBy(id = “studyPermissionAddPermission”) private WebElement addPermissionButton; … } 所以,我想要做的是将权限表变成一个更加自定义的WebElement,其中包含我之前提到的一些方法。 例如: public class TableWebElement extends WebElement { WebElement table; // a WebDriver needs to come into play here too I think public List<Map> getTableData() { // code to do this } public int […]

使用selenium上传文件

如何使用selenium webdriver通过窗口提示从本地上传文件? 我想执行以下操作: 单击窗口上的“浏览”选项 从窗口提示符转到保存文件的本地位置 选择文件并单击“打开”以上载文件。

在每个’@Test’之后和JUnit中的每个’@After’之前应用’@Rule’

我有一个测试套件,我在@After退出系统并在@AfterClass关闭浏览器。 我正在尝试使用@Rule为每种测试方法使用Selenium进行失败的测试截图。 我手动检查@Rule只在每个@Before之前运行,但是我想在@Test之后和@After之前设置它。 我找不到简单的解决方案。 任何帮助将不胜感激。 public class MorgatgeCalculatorTest { @Before public void before(){ System.out.println(“I am before”); } @BeforeClass public static void beforeclass(){ System.out.println(“I am beforeclass”); } @Test public void test(){ System.out.println(“I am Test”); } @Test public void test2(){ System.out.println(“I am Test2”); } @After public void after(){ System.out.println(“I am after”); } @AfterClass public static void afterclass(){ […]

如何使用java运行Selenium的ghostdriver

我想使用phantomJS进行一些网络测试,我遇到了GhostDriver ( https://github.com/detro/ghostdriver )。 我使用自述文件中的说明构建它,我可以在指定的端口上运行它,但我不知道如何从我的Java代码访问Web驱动程序。 为了澄清,我在ruby中看到了这个例子: caps = { :browserName => “phantomjs”, :platform => “LINUX” } urlhub = “http://key:secret@hub.testingbot.com:4444/wd/hub” client = Selenium::WebDriver::Remote::Http::Default.new client.timeout = 120 @webdriver = Selenium::WebDriver.for :remote, :url => urlhub, :desired_capabilities => caps, :http_client => client @webdriver.navigate.to “http://www.google.com/” puts @webdriver.title @webdriver.save_screenshot(“./screenshot.png”) @webdriver.quit 我只是不确定如何从java做同样的事情。