Tag: seleniumselenium

将命令行parameter passing给以编程方式运行的JUnittesting用例

我试图从Java类运行JUnittesting: JUnitCore core = new JUnitCore(); core.addListener(new RunListener()); core.run(classToRun); 问题是我的JUnittesting需要一个在JUnittesting本身当前硬编码的数据库连接。 我正在寻找的是一种以编程方式运行JUnittesting的方法(上图),但将一个数据库连接传递给我,在我的Java类中创build,运行testing,而不是在JUnit类中进行硬编码。 基本上是类似的东西 JUnitCore core = new JUnitCore(); core.addListener(new RunListener()); core.addParameters(java.sql.Connection); core.run(classToRun); 然后在classToRun中: @Test Public void Test1(Connection dbConnection){ Statement st = dbConnection.createStatement(); ResultSet rs = st.executeQuery("select total from dual"); rs.next(); String myTotal = rs.getString("TOTAL"); //btw my tests are selenium testcases:) selenium.isTextPresent(myTotal); } 我对@Parameters有所了解,但在这里似乎并不适用,因为它更多地用不同的值运行相同的testing用例。 我希望我所有的testing用例都能共享一个数据库连接,通过configuration文件传递给我的java客户端,然后运行这些testing用例(也通过configuration文件传入)。 这可能吗? PS我明白这似乎是一个奇怪的做事方式。

使用Selenium WebDriver读取JavaScriptvariables

我使用Selenium WebDriver(Java)和TestNG在我创build的网站上进行一些testing。 在这个网站中,我也有JavaScript,在一些函数中,它通过console.log()函数返回值并将值输出到浏览器控制台。 我想知道是否有一个简单的方法让Selenium WebDriver访问这些JavaScript信息,以便我可以使用TestNG执行断言。 我对selenium很新,但我知道你可以做这样的事情: WebDriver driver = new ChromeDriver(); driver.findElement(By.id("btn")).click(); 那么有没有什么类似的,我可以使用WebDriver来读取网站上的JavaScript? 澄清 看起来人们正在假设我正试图通过Selenium“执行”JavaScript代码。 事实并非如此。 相反,我试图使用Selenium存储已定义的JavaScriptvariables。 基本上,我希望Selenium能够获取JavaScriptvariables的值,将其存储在本地,然后对其进行断言testing。 尝试1 说我有我的网站的以下JS代码: $(document).ready(function() { var foo = $(#"input-field-val").val(); function returnFoo() { return foo; } }); 从我阅读和理解的东西,在我单独的Seleniumtesting文件(Selenium.java)中,我应该可以做这样的事情吗? public class Selenium { WebDriver driver = new FirefoxDriver(); JavascriptExecutor js = (JavascriptExecutor) driver; @Test public void testSample() { driver.get("www.mywebsite.com"); js.executeScript("alert(returnFoo());"); […]

有没有一个插件,你可以在Firefox中testingCSSselect器?

我想知道是否有这样一个插件在Firefox中,你可以testing出的CSSpath,以检查他们是否find正确的元素? 我正在寻找类似于xpath位置的xpather。

未知错误:Chrome无法启动:exception退出(驱动程序信息:chromedriver = 2.9

我试图在Debian 7上运行Seleniumtesting,但没有成功。 错误是: unknown error: Chrome failed to start: exited abnormally (Driver info: chromedriver=2.9.248316,platform=Linux 3.2.0-4-686-pae x86) (WARNING: The server did not provide any stacktrace information) Command duration or timeout: 60.55 seconds Build info: version: '2.33.0', revision: '4ecaf82108b2a6cc6f006aae81961236eba93358', time: '2013-05-22 12:00:17' System info: os.name: 'Linux', os.arch: 'i386', os.version: '3.2.0-4-686-pae', java.version: '1.7.0_25' Driver info: org.openqa.selenium.chrome.ChromeDriver 我有chromedriver 29在Debian […]

selenium网格:MaxSessions与MaxInstances

我想知道是否有人能够提出一个Selenium问题,让我们有点头痛。 我们对Selenium Grid的MaxSession和MaxInstances的含义感到困惑。 我们认为MaxSession是可以在单个节点上运行的testing会话的总数。 而且我们也认为MaxInstances是一个testing可以打开的浏览器总数。 或者MaxInstances是可用于该节点的浏览器总数? 我们正在使用的命令是: java -Xrs -jar selenium-server.jar -role node -port 44506 -hub http://localhost:44500 /grid/register -firefoxProfileTemplate SeleniumProfile -timeout 300000 -browser "browserName=firefox,maxInstances=10,platform=ANY,seleniumProtocol=WebDriver" -browser "browserName=chrome,maxInstances=10,platform=ANY,seleniumProtocol=WebDriver" 我们认为我们使用我们的节点(上面)的方式默认是5个并发testing会话。 每个testing有20个可用的浏览器吗? 还是每个testing会话共享池中的20个浏览器(10个chrome / 10 FF) – 与其他testing会话?

Google Chrome是否可以与Selenium IDE一起使用(就像Firefox一样)?

我无法find与Chrome一起使用的Selenium IDE。 有谁知道使用Selenium IDE的方式与Chrome而不是Firefox? 或者有什么替代工具可以与Chrome一起使用?

从内存中释放Selenium chromedriver.exe

我设置了一个python代码来运行Selenium chromedriver.exe 。 在运行结束时,我有browser.close()来closures实例。 ( browser = webdriver.Chrome() )我相信它应该从内存释放chromedriver.exe (我在Windows 7上)。 但是,每次运行后有一个chromedriver.exe实例保留在内存中。 我希望有一种方法,我可以用python写一些东西来杀死chromedriver.exe进程。 很明显, browser.close()不做这个工作。 谢谢。

在Python中使用代理运行Selenium Webdriver

我想在Python中运行一个Selenium Webdriver脚本来完成一些基本的任务。 通过Selenium IDE界面(也就是说,当简单地获取GUI重复我的操作时),我可以让机器人完美地运行。 但是,当我将代码作为Python脚本导出并尝试从命令行执行时,Firefox浏览器将打开,但不能访问起始URL(错误返回到命令行,程序停止)。 这正在发生我无论什么网站等我试图访问。 为了演示目的,我在这里包含了一个非常基本的代码。 我不认为我正确地包含了代码的代码段,因为返回的错误似乎是由代理生成的。 任何帮助将非常感激。 下面的代码只是打开www.google.ie并search单词“selenium”。 对我来说,它打开一个空白的Firefox浏览器,并停止。 from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import Select from selenium.common.exceptions import NoSuchElementException import unittest, time, re from selenium.webdriver.common.proxy import * class Testrobot2(unittest.TestCase): def setUp(self): myProxy = "http://149.215.113.110:70" proxy = Proxy({ 'proxyType': ProxyType.MANUAL, 'httpProxy': myProxy, 'ftpProxy': myProxy, 'sslProxy': myProxy, 'noProxy':''}) self.driver […]

如何阻止Selenium使用Web驱动程序创build临时的Firefoxconfiguration文件?

我正在使用Selenium Web Driver API和Java。 每次我想debugging我的testing用例时,都会在临时文件目录中创build一个临时的Firefoxconfiguration文件。 这在两个方面是令人头痛的。 这绝对是花费不必要的时间来创build一个configuration文件,并占用不必要的空间。 我无法安装下一次启动我的testing用例时可用的插件。 我如何解决这个问题?

如何在WebDriver中处理iframe

<div> <iframe id="cq-cf-frame "> <iframe id="gen367"> <body spellcheck="false" id="CQrte" style="height: 255px; font-size: 12px; font-family:tahoma,arial,helvetica,sans-serif; background-image: url(&quot;/libs/cq/ui/widgets/themes/default/ext/form/text-bg.gif&quot;); background-repeat: repeat-x; background-attachment: fixed;"> <p>4t43t4<br></p> </body > </iframe> </iframe> </div> 在这种情况下iframe下有一个iframe 。 我必须select外部iframe去内部iframe并写入内部iframe中的主体。 接下来,我必须从内部iframe走出到外部iframe ,然后单击OKbutton(位于外部iframe )。 以下是我的代码 /*Line 1 */ driver.switchTo().frame("cq-cf-frame"); /* 2 */ driver.findElement(By.css("#extdd-9 > div.tblRow > input.edititem").click(); /* 3 */ driver.switchT().Frame("cq-gen379"); /* 4 */ driver.findElement(By.id("CQrte").sendKeys("Tnx"); /* 5 […]