我是Selenium的新手,只为firefox编写我的测试用例.我也想为Chrome驱动程序编写它.但是我应该在哪里下载Widows 8 64位.
selenium google-chrome webdriver selenium-chromedriver selenium-webdriver
我试图阻止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);
Run Code Online (Sandbox Code Playgroud)
我不允许Firefox加载任何图像,脚本和样式表.如何使用Internet Explorer Webdriver和Chrome Webdriver执行此操作?我没有找到任何类似的偏好.或者甚至有更优雅的方法来阻止webdrivers加载网站的JS文件?谢谢!
我正在尝试使用ruby运行我的第一个selenium webdriver脚本.我安装了ruby,以及webdriver的gem.谷歌搜索这个问题几个小时是相当无果味的 - 任何帮助表示赞赏!
require "selenium-webdriver"
driver = Selenium::WebDriver.for :firefox
driver.navigate.to "http://google.com"
element = driver.find_element(:name, 'q')
element.send_keys "Hello WebDriver!"
element.submit
puts driver.title
driver.quit
Run Code Online (Sandbox Code Playgroud)
我收到此错误消息:
testb.rb:2:in `<main>': undefined local variable or method `‘selenium' for main:Object (NameError)
Run Code Online (Sandbox Code Playgroud)
ruby -v ruby 2.1.1p76(2014-02-24修订版45161)[x86_64-darwin12.0]
gem list返回selenium-webdriver(2.40.0)作为列表的一部分
有人可以指导我一点吗?我认为ruby根本就没有认识到selenium并且无法超越第二行代码 - 是否有另一个步骤将selenium与这个简单的ruby脚本"链接起来"?
我不清楚为什么我仍然在这个Webdriver测试中抛出NoSuchElementException?
任何人都可以调试或建议更有效/更多的解决方案吗?
注意 - 如果我尝试使用driver.findElements(By.id("...")),我会得到同样的错误.size()!= 0
boolean present;
try{
driver.findElement(By.cssSelector(".message-bg-color>table>tbody>tr>td>h3"));
present = true;
}catch (NoSuchElementException e){
present = false;
}
if(!present) {
// do some stuff
}
else
{
//do some otherstuff
}
Run Code Online (Sandbox Code Playgroud)
堆栈跟踪:
org.openqa.selenium.NoSuchElementException: Unable to locate element: {"method":"css selector","selector":".message-bg-color>table>tbody>tr>td>h3"}
Command duration or timeout: 1.17 seconds
For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html
Build info: version: '2.41.0', revision: '3192d8a6c4449dc285928ba024779344f5423c58', time: '2014-03-27 11:29:39'
System info: host: 'L-IS08381', ip: '172.19.248.194', os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.7.0_51'
Session …
Run Code Online (Sandbox Code Playgroud) 任何人都可以建议,如何通过Python + selenium + WebDriver将文本或HTML插入特定的DOM元素?
当我单击页面上的按钮(在IE浏览器中)时,将打开一个新的弹出页面.我尝试获取此弹出窗口的窗口句柄失败了.这是我的第一次尝试:
String baseWin = driver.getWindowHandle();
System.out.println(baseWin);
Set<String>s = driver.getWindowHandles();
Iterator<String> ite = s.iterator();
while ( ite.hasNext() ) {
String popUpHandle = ite.next();
if(!baseWin.equals(popUpHandle)) {
driver.switchTo().window(popUpHandle);
System.out.println(driver.switchTo().window(popUpHandle).getTitle());
Run Code Online (Sandbox Code Playgroud)
此尝试仅打印基本窗口的句柄,如果第二个print语句放在if()语句之外,但在while()语句之内和if()语句之后,它只是输出基本窗口的标题.所以句柄集似乎只包含基本窗口句柄.
这是我的第二次尝试:
String baseWin = driver.getWindowHandle();
System.out.println(baseWin);
ArrayList<String> popUpWin = new ArrayList<String>(driver.getWindowHandles());
popUpWin.remove(baseWin);
driver.switchTo().window(popUpWin.get(0));
System.out.println(driver.switchTo().window(popUpWin.get(0)));
Run Code Online (Sandbox Code Playgroud)
此尝试返回一个错误,该错误表示数组popUpWin为空,即size == 0.因此,当我调用driver.getWindowHandles()并且仅包含基本窗口的句柄时,不会检索弹出窗口的句柄.这是IE问题吗?有解决方法吗?或者我在代码中忽略了什么?(请注意,我忽略了我在此处包含的代码中的暂停,所以我不相信这是问题.)
我需要按类查找页面中的所有元素并单击它们,然后在每个元素中,我需要按类查找所有其他元素并单击,我该如何以简单的方式执行此操作?我尝试在foreach循环中使用foreach循环,但它无法正常工作
var select2arrow = driver.FindElements(By.ClassName("select2-arrow"));
foreach (IWebElement element in select2)
{
try
{
element.Click();
var select2title = driver.FindElements(By.ClassName("title"));
foreach (IWebElement element in select2title )
{
try
{
element.Click();
}
}
}
catch (Exception ex)
{
if (TestRunner.LogTestReports)
{
driver.SaveScreenshot(ex);
}
}
}
Run Code Online (Sandbox Code Playgroud) 我正在使用带有Java的Webdriver 3.3.1.我试图禁用弹出窗口要求保存密码.根据搜索结果我需要使用ChromOptions.AddUserProfilePreference("","")但是,没有AddUserProfilePreference,唯一的add方法是addArguments.
我正在使用Eclipse Neon.2和Java 1.8
我有以下HTML代码,我试图运行我的selenium测试
<html>
<head></head>
<body>
<table id="Original">
<tr>
<td>Original-11</td>
<td>Original-12</td>
<td>Original-13</td>
</tr>
<tr>
<td>Original-21</td>
<td>Original-22</td>
<td>Original-23</td>
</tr>
<tr>
<td>Original-31</td>
<td>Original-32</td>
<td>Original-33</td>
</tr>
</table>
<br/><br/>
<table id="Duplicate">
<tr>
<td>Duplicate-11</td>
<td>Duplicate-12</td>
<td>Duplicate-13</td>
</tr>
<tr>
<td>Duplicate-21</td>
<td>Duplicate-22</td>
<td>Duplicate-23</td>
</tr>
<tr>
<td>Duplicate-31</td>
<td>Duplicate-32</td>
<td>Duplicate-33</td>
</tr>
</table>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
selenium java代码如下所示:
public static void main(String[] args) throws Exception
{
System.setProperty("webdriver.chrome.driver", System.getProperty("user.dir") + "/src/test/drivers/chromedriver.exe");
WebDriver drv = new ChromeDriver();
drv.get("C:/Users/MYUserName/git/er_test/SeleniumTestHtml.html");
WebElement tableElement = drv.findElement(By.id("Duplicate"));
WebElement rowElement = tableElement.findElement(By.xpath("//tr[2]"));
WebElement cellElement = rowElement.findElement(By.xpath("//td[2]"));
System.out.println(rowElement.getText());
System.out.println(cellElement.getText());
drv.close();
drv.quit();
} …
Run Code Online (Sandbox Code Playgroud) 为了测试(和带宽!)的目的,我需要禁用图像加载.