在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.
我在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 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)
我上面的代码不起作用.
为什么我们不能在Selenium IDE中记录所有测试用例,将其导出到Java/WebDriver并使用Eclipse在WebDriver中运行它?
我需要一个明确的解释,因为我在使用WebDriver时非常困惑!
任何人都可以解释为什么IDE记录的脚本在WebDriver中失败了吗?
在我编写的测试中,如果我想断言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) 如何使用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) 我可以在文档中看到
方法is_visible,但我不知道如何使用它.我不断收到错误,例如"is_visible需要一个selenium实例作为第一个参数",还有什么是"定位器"?
任何帮助,将不胜感激.
我在谷歌和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) 谷歌Chrome 38 在devtools中引入了新的"设备模式和移动仿真"功能.除了选择用于仿真的设备之外,还可以模拟不同的网络条件:
在不同的网络条件下优化网站的性能是开发移动受众的关键方面.
设备模式的网络调节允许您在各种网络连接上测试您的站点,包括Edge,3G甚至离线.从预设下拉列表中选择一个连接以应用网络限制和延迟操作.
例如,我们可以将它设置为好日子 - GPRS 50 Kbps:

现在我们有一个很好的用例 - 我们有一个用于网络速度测试的内部应用程序.这种新的仿真功能对手动测试非常有用.但是,我们希望自动化它.
问题是:
是否可以通过指定网络条件下的硒开始镀铬?它可以通过chrome首选项或命令行参数来控制吗?
当然有多种选择来模拟慢速互联网连接,但问题是关于chrome + selenium.
performance selenium google-chrome bandwidth-throttling selenium-webdriver
我正在研究一个用于网络搜索的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
selenium ×6
webdriver ×5
java ×3
assertion ×1
file-upload ×1
javascript ×1
node.js ×1
performance ×1
python ×1
python-2.7 ×1
selenium-ide ×1
xpath ×1