是否可以将多个selenium浏览器实例一起运行,每个实例都可以用于自己的浏览器,这样可以提高速度?
我可以运行一个像:
ISelenium selenium = new DefaultSelenium("localhost", 4444, "*chrome", "http://localhost/");
selenium.Start();
Run Code Online (Sandbox Code Playgroud)
但如何打开更多的内容并在每个内部打开页面?
我已经将PhantomJS和Selenium添加到我的C#控制台应用程序中,我希望在它到达特定元素时拍摄浏览器的屏幕截图.原因是因为出于某种原因,当我使用ChromeDriver时,它工作正常,但是当我使用PhantomJS时,它会在一些元素上失败.
我想我需要介绍如何使用phantomjs在C#中截取屏幕截图.我在互联网上环顾四周,看起来每个人都在用java脚本来做这件事.我遇到的问题是我不知道如何将java脚本集成到我的C#应用程序中,然后使用它与phantomJS来获取屏幕截图.如果我能得到一些如何做到这一点的帮助,那将是非常好的.
TLDR:我找到了http://code.tutsplus.com/tutorials/testing-javascript-with-phantomjs--net-28243这就是我想要做但我不知道怎么用我的javascript c#app.
最近,我们开始使用Teamcity进行构建管理,并使用ANT脚本运行selenium junit测试.测试成功运行并显示为在teamcity控制台上传递.当我运行测试时,如果我登录到构建代理机器,我希望能够看到浏览器窗口打开并填写并提交字段.我没有看到Firefox浏览器窗口打开,想知道我的测试是如何通过的.当我在Eclipse中运行相同的测试脚本时,将打开Firefox浏览器窗口并填充网页字段.
感谢您的评论.
是否可以通过元素的部分值通过selenium单击onclick
元素?
页面上有多个输入项,我只需要选择一个具有特定字符串的项.
例子是:
<input name="booksubmit" type="button" class="searchAvailBtnSelect" value="Select" onclick="setTimeout('disableSelect()',1);bookNowSubmit('0165','1BD','000000452014022703S000016500010708F ','101400','156000','3','02/27/2014','false','false','false','false','true','false','false','EXPRESS','63','1 Bedroom Deluxe','false','AC')">
<input name="booksubmit" type="button" class="searchAvailBtnSelect" value="Select" onclick="setTimeout('disableSelect()',1);bookNowSubmit('0165','2BD','000000452014022703S000016500010708F ','101400','156000','3','02/27/2014','false','false','false','false','true','false','false','EXPRESS','63','2 Bedroom Deluxe','false','AC')">
<input name="booksubmit" type="button" class="searchAvailBtnSelect" value="Select" onclick="setTimeout('disableSelect()',1);bookNowSubmit('0165','1BD','000000452014022703S000016500010708F ','101400','156000','3','02/27/2014','false','false','false','false','true','false','false','EXPRESS','63','1 Bedroom Presidential','false','AC')">
Run Code Online (Sandbox Code Playgroud)
如果您注意到最后,有"一卧室豪华","两卧室豪华"和"一卧室总统".由于它是一个输入项,因此我没有任何文本可以过滤,但我只需要选择一个特定的项目,例如2卧室豪华版.
在以下意义上我能做些什么:
buttons = driver.find_elements_by_name('booksubmit')
for button in buttons:
if button ........
Run Code Online (Sandbox Code Playgroud)
什么或另一个?我目前正在使用beautifulsoup4来解析页面上的html并检索与该项目相关联的文本,因此我不知道是否可以合并.从视觉上看,该页面是一个HTML表格,格式为:
+--------------------------------------------------------------------+
| 1 Bedroom Deluxe | $25 | [button i don't care about] |
|------------------------+---------+---------------------------------|
| 2 Bedroom Deluxe | $50 | [button i'm trying to click] |
|------------------------+---------+---------------------------------|
| 1 Bedroom Presidential | $50 …
Run Code Online (Sandbox Code Playgroud) 我有一点怀疑.
为什么我们需要在IE和Chrome中运行selenium scrits的IEdriver和Chrome Driver,但是我们不需要使用firefox驱动程序来运行脚本?
这有什么理由吗?
我一直在使用Selenium WebDriver进行测试,我一直在寻找一个XPath代码来获取HTML元素属性的值作为回归测试的一部分.但我找不到一个好的答案.
这是我的示例html元素:
<div class="firstdiv" alt="testdiv"></div>
Run Code Online (Sandbox Code Playgroud)
我想使用XPath获取"alt"属性的值.我有一个XPath来使用class属性获取div元素,该属性是:
//div[@class="firstdiv"]
Run Code Online (Sandbox Code Playgroud)
现在,我正在寻找一个XPath代码来获取"alt"属性的值.假设我不知道"alt"属性的值是多少.
xpath是 //div[contains(@class, 'a b') and not (contains(@style, 'c'))]
等效的CSS选择器是什么?容易得到第一位div[class*='a b']
,但如何否定和结合它们?
我已经对此做了一些阅读,但未能找到具体的东西.我有一个需要与Selenium交互的画布对象.但是我们都知道画布对象就像一个封闭的盒子.我读到你可以在JS代码中添加'hooks'来绘制画布,以允许Selenium捕获这些钩子并使用某些东西.
但我不确定我怎么能这样做.有没有人愿意分享任何经验或小例子?
我使用driver.findelement by.classname方法在firefox浏览器上读取一个元素,但我得到"不支持复合类名.考虑搜索一个类名并过滤结果." 例外
这是我的代码
driver.FindElement(By.ClassName("bighead crb")).Text.Trim().ToString()
//and here is how the html of browser looks like
<form action="#" id="aspnetForm" onsubmit="return false;">
<section id="lx-home" style="margin-bottom:50px;">
<div class="bigbanner">
<div class="splash mc">
<div class="bighead crb">LEAD DELIVERY MADE EASY</div>
</div>
</div>
</section>
</form>
Run Code Online (Sandbox Code Playgroud)