Tag: selenium

Selenium Webdrivers:无任何资源加载页面

我试图阻止Javascript更改我正在使用Selenium测试的网站源代码。 问题是,我不能简单地在Webdriver中关闭Javascript,因为我需要它来进行测试。 这是我正在为Firefox Webdriver做的事情: firefoxProfile.setPreference(“permissions.default.image”, 2); firefoxProfile.setPreference(“permissions.default.script”, 2); firefoxProfile.setPreference(“permissions.default.stylesheet”, 2); firefoxProfile.setPreference(“permissions.default.subdocument”, 2); 我不允许Firefox加载任何图像,脚本和样式表。 如何使用Internet Explorer Webdriver和Chrome Webdriver执行此操作? 我没有找到任何类似的偏好。 或者是否有一种更优雅的方式来阻止webdrivers加载网站的JS文件呢? 谢谢!

如何处理StaleElementReferenceException

我有一个场景,我试图循环条形图上的许多元素,直到我找到“rect”标签名称。 当我点击“rect”标签名称时,从图表中选择单个栏,我将重定向到另一个页面。 请参阅下面的我正在使用的条形图的图像: http : //imgur.com/xU63X1Z 作为参考,我正在使用的条形图是右上角。 我想要执行的测试是点击图表中的第一个栏; 这样做会将我重定向到适当的页面。 为了做到这一点,我使用Eclipse(Java)在Selenium Webdriver中编写了以下代码: WebElement deliveredChartDailyFocus = driver.findElement(By.id(“delivered-chart-daily”)); deliveredChartDailyFocus.click(); List children = deliveredChartDailyFocus.findElements(By.tagName(“rect”)); Iterator iter = children.iterator(); while (iter.hasNext()) { WebElement we = iter.next(); if(we.isDisplayed()){ we.click(); } 一切似乎都运行良好,上面的代码点击“rect”元素并将我重定向到适当的页面。 但是,当我点击页面时,我得到一个错误,因为代码仍然在寻找不在新页面上的“rect”值。 您会注意到上面没有“中断”行……这是因为,在调试代码时,我发现在迭代循环时,click事件直到第3次迭代才开始,我’ m假设因为“rect”元素不可见? 因此,如果我输入一个“break”语句,它会在第一次迭代后退出循环,因此我从未到达执行“click”事件导航到新页面的部分。 基本上,我所追求的是一种能够根据需要循环多次的方式,直到找到适当的“rect”元素。 单击它后,我被重定向到新页面…。只是在那一点上我想要循环退出,以便不显示“NoSuchElementException错误。 如果需要更多详细信息,请告知我们,我们非常感谢您提供的任何指导。

如何在JAVA中使用selenium接受firefox webdriver上的下载提示?

我正在测试我正在构建的页面,我希望找出是否可以使用selenium接受下载提示? 我正在使用Firefox Webdriver。

使用Selenium的JAVA中的browsermob不起作用,浏览器的错误不同

我使用Java和selenium,我想使用browsermob:我在不同的浏览器中使用相同的代码,例如firefox: BrowserMobProxyServer proxyServer = new BrowserMobProxyServer(); proxyServer.start(); proxyServer.setHarCaptureTypes(CaptureType.getAllContentCaptureTypes()); proxyServer.enableHarCaptureTypes(CaptureType.REQUEST_CONTENT, CaptureType.RESPONSE_CONTENT); Proxy proxy = ClientUtil.createSeleniumProxy(proxyServer); DesiredCapabilities dccFirefox = DesiredCapabilities.firefox(); dccFirefox.setCapability(CapabilityType.PROXY, proxy); this.driver = new FirefoxDriver(dccFirefox); 在Firefox中发生错误: org.openqa.selenium.SessionNotCreatedException: InvalidArgumentError: Expected [object Undefined] undefined to be an integer Build info: version: ‘3.5.1’, revision: ‘9c21bb67ef’, time: ‘2017-08-17T15:26:08.955Z’ System info: host: ‘BEN-PLL-ST1-HP’, ip: ‘192.168.1.9’, os.name: ‘Windows 7’, os.arch: ‘amd64’, os.version: […]

为页面中的帧实现PageObjects模式

如何为页面中的帧实现pageObject模式(Selenium)..我有一个主页,有一个左框架和右框架,我想为每个框架创建页面对象.. 例如,我有如下的LeftFrame页面对象: Public Class HomePageLeftFrame{ private WebElement link; private WebElement textField; } 如何为HomePageLeftFrame对象中的两个元素编写@FindBy注释…有没有办法? 注意:根据关于pageObjects的selenium的文档,提到页面对象可以是整个HTML页面或页面的一部分。我的理解是否正确上述实现?

带有PageFactory的Selenium java.lang.NullPointerException

我试图抓住PageFactory POM,但有些东西不起作用,我无法理解什么是错的。 这是我的第一个主页POM课程: package PageFactory; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.FindBy; import org.openqa.selenium.support.PageFactory; public class Home_Page_POF { public WebDriver driver; @FindBy(css = “div#header-profile a#header-profile-toggle”) public WebElement profileToggleButton; @FindBy(css = “form#loginUserdataForm div.footer div.add-footer a.btn.btn-link.linkicon”) public WebElement newRegistrationButton; public Home_Page_POF(WebDriver driver) { this.driver = driver; PageFactory.initElements(driver, this); } } 这是Reg的第二个POM课程。 页 package PageFactory; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; […]

在JBehave中使用多个元filter进行过滤

情况: 在我目前的项目中,我们正在运行各种不同的JBehave故事。 每个“.story”文件都与产品和流程相关。 例: xyz-cellphone-call.story将描述用手机拨打电话的故事。 xyz-phone-call.story将描述用固定电话拨打电话的故事。 xyz-cellphone-browse.story将描述用手机浏览互联网的故事。 我的问题:在Jbehave中,你可以添加metaFilters来过滤基于元标记的故事。 假设标签是@product和@action。 (@product手机,@ action电话)。 是否有可能通过一个filter来运行有关手机和手机故事的JBehave故事,如果是,那么语法是什么? 我尝试添加以下filter(没有一个工作): +product cellphone +product phone +product cellphone|phone +product cellphone,phone 行动相同。 是否可以过滤多个元标记?

如何使用selenium web driver for java获取特定optgroup下的选项?

例如,我想从多选选项列表字段中选择特定optgroup下的选项 pick1 pick2 pick3 pick4 如果选项列表字段如上所述,我可以使用 new Select(driver.findElement(By.id(“xyz”))).selectByVisibleText(“pick1”); new Select(driver.findElement(By.id(“xyz”))).selectByVisibleText(“pick2”); 从上面选择optgroup -Group1下的所有选项。 在这里,我知道Group1中存在哪些选项,因此我可以选择如上所述。 但我的要求是动态的,我需要选择optgroup-Group1下的所有选项。 如果我想动态选择包括组1和组2的所有选项 然后我可以使用 new Select(driver.findElement(By.id(“xyz”))).getOptions(); 将所有选项作为List获取,我可以将其存储为数组,然后我可以使用数组逐个选择所有选项 但是,如何才能在一个特定的optgroup下获得所有选项,比如Group1或Group2?

使用java测量网页的总加载时间

我正在创建一个应用程序来检查页面加载所需的时间。 到目前为止,我有这样的事情: long startTime = System.currentTimeMillis(); //load page and wait for it to finish long elapsedTime = System.currentTimeMillis() – startTime; 现在,我不只是想测量html文档加载的时间,而是整个dom。 基本上,如果它在浏览器中,我希望它能够测量加载微调器停止所需的时间。 我该怎么做才能做到最好? 我正在尝试WebDriver,但它似乎并不一致; 有时它会在仍然加载东西时考虑完成页面(我也尝试过隐式等待)。

从BR​​标签中提取文本

之前我已经能够使用Selenium提取文本了,但是我只是在标签之间提取数字时遇到了麻烦。 这是html代码的示例。 Working Title Further information on subject 3.000 2.000 More information 到目前为止,我尝试过使用: WebElement creditinfo = driver.findElement(By.xpath(“//div[@class=’pagebodydiv’]/text()[preceding-sibling::br] 和Elements numInfo = doc.select(“br”); 但是,我一直遇到NoSuchElementException错误,InvalidSelectorException错误,或者它只是没有返回任何内容。 关于如何获取信息的任何想法?