标签: selenium-webdriver

Selenium 2.0b3 IE WebDriver,点击不激活

在IE9中使用IE驱动程序时,偶尔Click方法只会选择一个按钮,它不会执行Click()的操作.请注意,这只会偶尔发生,所以我不认为这是代码问题.在Firefox4上使用Firefox驱动程序没有问题.我也有一个问题,偶尔也没有找到元素,但只在IE中再次发现,而不是Firefox.

if (Driver.FindElement(By.Name("username")) == null) {
    //sometimes gets here in IE, never gets here in Firefox
}
Driver.FindElement(By.Name("username")).SendKeys(username);
Driver.FindElement(By.Name("surname")).SendKeys(surname);
Driver.FindElement(By.Name("firstname")).SendKeys(firstname);
string url = Driver.Url;
Driver.FindElement(By.Name("cmd")).Click();
if (Driver.Url == url) {
    //if the page didnt change, click the link again
    Driver.FindElement(By.Name("cmd")).Click();
}
Run Code Online (Sandbox Code Playgroud)

我已经看到了类似的问题(http://stackoverflow.com/questions/4737205/selenium-webdriver-ie-button-issue),但我没有动态生成的ID.

webdriver internet-explorer-9 selenium-webdriver

41
推荐指数
5
解决办法
5万
查看次数

如何使用Selenium WebDriver处理Windows文件上传?

我在Stackoverflow上使用Selenium WebDriver看到了很多关于文件上传的问题和解决方案.但是没有一个适用于以下场景.

有人给出了如下解决方案

// assuming driver is a healthy WebDriver instance
WebElement fileInput = driver.findElement(By.name("uploadfile"));
fileInput.sendKeys("C:/path/to/file.jpg");
Run Code Online (Sandbox Code Playgroud)

但我还是找不到窗口句柄我该如何处理?

截图

我正在寻找上述方案的解决方案

请检查以下任何网站

http://www.uploadify.com/demos/
http://www.zamzar.com/
Run Code Online (Sandbox Code Playgroud)

java selenium file-upload webdriver selenium-webdriver

41
推荐指数
3
解决办法
13万
查看次数

如何使用Selenium WebDriver和java从下拉列表中选择项目?

如何使用带有Java的Selenium WebDriver从性别下拉列表中选择项目(例如男性,女性)?

我试过这个

WebElement select = driver.findElement(By.id("gender"));
List<WebElement> options = select.findElements(By.tagName("Male"));
for (WebElement option : options) {
    if("Germany".equals(option.getText()))
        option.click();   
}
Run Code Online (Sandbox Code Playgroud)

我上面的代码不起作用.

java selenium webdriver selenium-webdriver

41
推荐指数
4
解决办法
30万
查看次数

为什么我们使用WebDriver而不是Selenium IDE?

为什么我们不能在Selenium IDE中记录所有测试用例,将其导出到Java/WebDriver并使用Eclipse在WebDriver中运行它?

我需要一个明确的解释,因为我在使用WebDriver时非常困惑!

任何人都可以解释为什么IDE记录的脚本在WebDriver中失败了吗?

selenium webdriver selenium-ide selenium-webdriver

41
推荐指数
3
解决办法
5万
查看次数

断言使用Selenium WebDriver和java不存在WebElement

在我编写的测试中,如果我想断言WebElement存在于页面上,我可以做一个简单的事情:

driver.findElement(By.linkText("Test Search"));
Run Code Online (Sandbox Code Playgroud)

如果它存在,它将通过,如果它不存在它将弹出.但现在我想断言的链接本身并不存在.我不清楚如何做到这一点,因为上面的代码不返回布尔值.

编辑这就是我提出自己修复的方法,我想知道是否还有更好的方法.

public static void assertLinkNotPresent (WebDriver driver, String text) throws Exception {
List<WebElement> bob = driver.findElements(By.linkText(text));
  if (bob.isEmpty() == false) {
    throw new Exception (text + " (Link is present)");
  }
}
Run Code Online (Sandbox Code Playgroud)

java assertion selenium-webdriver

40
推荐指数
4
解决办法
10万
查看次数

如何使用selenium java webdriver选择复选框?

如何使用id/xpath检查复选框.有没有类似于selecttext by selecttext的方法.

通过给出所有其他相关问题的示例,我找不到一个正确的解决方案,以简洁的方式工作,通过几行或方法我可以检查chekbox或单选按钮.

任何帮助,将不胜感激.

HTML示例部分如下:

<tbody> 
<tr> 
    <td> 
        <span class="120927"> 
        <input id="ctl00_CM_ctl01_chkOptions_0" type="checkbox" name="ctl00$CM$ctl01$chkOptions$0"/> 
        <label for="ctl00_CM_ctl01_chkOptions_0">housingmoves</label> 
        </span> 
    </td> 
</tr> 
<tr>
    <td>
        <span class="120928"> 
        <input id="ctl00_CM_ctl01_chkOptions_1" type="checkbox" name="ctl00$CM$ctl01$chkOptions$1"/> 
        <label for="ctl00_CM_ctl01_chkOptions_1">Seaside & Country Homes</label> 
        </span> 
    </td> 
</tr> 
</tbody> 
Run Code Online (Sandbox Code Playgroud)

selenium xpath webdriver selenium-webdriver

40
推荐指数
5
解决办法
24万
查看次数

在python selenium中,如何找到元素的可见性?

我可以在文档中看到

http://selenium.googlecode.com/svn/trunk/docs/api/py/selenium/selenium.selenium.html#selenium.selenium.selenium.is_visible

方法is_visible,但我不知道如何使用它.我不断收到错误,例如"is_visible需要一个selenium实例作为第一个参数",还有什么是"定位器"?

任何帮助,将不胜感激.

python-2.7 selenium-webdriver

40
推荐指数
1
解决办法
4万
查看次数

Selenium WebDriver等到元素显示

我在谷歌和SO网站上搜索过,我得到了JAVA的答案,但似乎没有得到node.js的答案

我有一个需要时间加载的网络应用程序.我会selenium程序等到页面加载然后执行一些操作.

我目前的代码如下

//dependencies
var webdriver = require('selenium-webdriver'),
    util = require('util'),
    _ = require('underscore');

var driver = new webdriver.Builder().withCapabilities(webdriver.Capabilities.chrome()).build();
var branchName =  _.isUndefined(process.argv[3]) ? 'branch' : process.argv[3], 
    hostName = _.isUndefined(process.argv[2]) ? 'localhost' : process.argv[2],
    appTmpl = 'http://%s/%s',
    username = 'xxxx',
    password = 'xxxx';
var appUrl = util.format(appTmpl, hostName, branchName);

driver.get(appUrl);
driver.findElement(webdriver.By.name("username")).sendKeys(username);
driver.findElement(webdriver.By.name("password")).sendKeys(password);
driver.findElement(webdriver.By.name("login_button")).click();
driver.quit();
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

    C:\Work\study\selenium\node_modules\selenium-webdriver\lib\webdriver\promise.js:1643
      throw error;
            ^
NoSuchElementError: no such element
  (Session info: chrome=37.0.2062.103)
  (Driver info: chromedriver=2.10.267521,platform=Windows NT 6.1 SP1 x86_64)
    at new bot.Error (C:\Work\study\selenium\node_modules\selenium-webdriver\lib\atoms\error.js:109:18)
    at Object.bot.response.checkResponse (C:\Work\study\selenium\node_modules\selenium-webdriver\lib\atoms\response.js:106:9) …
Run Code Online (Sandbox Code Playgroud)

javascript node.js selenium-webdriver

40
推荐指数
4
解决办法
7万
查看次数

用铬和硒进行网络节流

谷歌Chrome 38 在devtools中引入了新的"设备模式和移动仿真"功能.除了选择用于仿真的设备之外,还可以模拟不同的网络条件:

在不同的网络条件下优化网站的性能是开发移动受众的关键方面.

设备模式的网络调节允许您在各种网络连接上测试您的站点,包括Edge,3G甚至离线.从预设下拉列表中选择一个连接以应用网络限制和延迟操作.

例如,我们可以将它设置为好日子 - GPRS 50 Kbps:

在此输入图像描述

现在我们有一个很好的用例 - 我们有一个用于网络速度测试的内部应用程序.这种新的仿真功能对手动测试非常有用.但是,我们希望自动化它.

问题是:

是否可以通过指定网络条件下的硒开始镀铬?它可以通过chrome首选项或命令行参数来控制吗?


当然有多种选择来模拟慢速互联网连接,但问题是关于chrome + selenium.

performance selenium google-chrome bandwidth-throttling selenium-webdriver

40
推荐指数
5
解决办法
2万
查看次数

如何配置ChromeDriver以通过Selenium在无头模式下启动Chrome浏览器?

我正在研究一个用于网络搜索的python脚本,并且已经走上了使用Chromedriver作为其中一个软件包的道路.我希望这在没有任何弹出窗口的情况下在后台运行.我在chromedriver上使用'headless'选项,它似乎没有显示浏览器窗口,但是,我仍然看到.exe文件正在运行.看到我正在谈论的截图.截图

这是我用来启动ChromeDriver的代码:

options = webdriver.ChromeOptions()
options.add_experimental_option("excludeSwitches",["ignore-certificate-errors"])
options.add_argument('headless')
options.add_argument('window-size=0x0')
chrome_driver_path = "C:\Python27\Scripts\chromedriver.exe"
Run Code Online (Sandbox Code Playgroud)

我试图做的事情是将选项中的窗口大小改为0x0,但我不确定是什么,因为.exe文件仍然弹出.

有关如何做到这一点的任何想法?

我使用的是Python 2.7 FYI

python selenium selenium-chromedriver selenium-webdriver google-chrome-headless

40
推荐指数
6
解决办法
6万
查看次数