Tag: selenium webdriver

使用Selenium WebDriver Java绑定清除浏览器Cookie

有没有人知道在开始自动化之前是否可以为WebDriver清除浏览器Cookie? (注:不是Selenium RC)

查找WebElements,最佳实践

在我们当前的自动化(使用Selenium / WebDriver / Java)中,我们非常广泛地使用@FindBy 。 例如: @FindBy(css=”a[name=’bcrumb’]”) protected List breadCrumbLinks; @FindBy(id=”skuError”) protected WebElement skuError; @FindBy(className=”reducedPrice”) protected List reducedPrice; @FindBy(partialLinkText=”Injinji RUN 2.0″) protected WebElement playButton; @FindBy(linkText=”annual member refund”) protected WebElement annualMemberRefund; @FindBy(xpath=”//li[@itemprop=’price’]”) protected WebElement productPrice; 根据定义, @FindBy可以使用以下@FindBy定位选择器:using,id,name,className,css,tagName,linkText,partialLinkText和xpath。 最近,我们的前端开发人员建议我们实现一个以’test =’开头的新属性类。 我认为这是一个好主意,因为我们可以通过查找文本的@FindBy来找到WebElements,而不是@FindBy固有使用的值。 我的问题是, 扩展 @FindBy OR 的现有function会更好@FindBy ,创建一种搜索我们在测试中使用的WebElements的新方法?

如何使用Selenium WebDriver和Java获取浏览器名称?

我有一个测试用例,需要根据浏览器名称即IE或Chrome执行。 在此测试用例中,某些部分将取决于浏览器类型。 如何在执行之间获取浏览器名称? 例如,如果是IE,我需要传递数据。 如果是Chrome浏览器,我需要选择数据。

CSS Locator with contains()使用Selenium WebDriver的InvalidSelectorException

我正在学习Selenium Webdriver并尝试编写一个简单的测试脚本。 目的是在Gmail页面上获取“ About Google链接,以便练习CSS定位器 。 这是代码: import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; public class GoogleSearch { public static void main(String[] args) { WebDriver driver = new FirefoxDriver(); driver.get(“https://www.gmail.com”); WebElement aboutGoogle = driver.findElement(By.cssSelector(“a:contains(‘About Google’)”)); driver.close(); driver.quit(); } } 我得到以下提到的例外: Exception in thread “main” org.openqa.selenium.InvalidSelectorException: The given selector a:contains(‘About Google’) is either invalid or […]

在Selenium Grid中注册PhantomJS节点时出错

我有以下问题 我成功推出了Selenium Grid hub: java -jar selenium-server-standalone-2.53.0.jar -role hub 之后我尝试使用以下命令启动PhantomJS节点: phantomjs –webdriver=8090 –webdriver-selenium-grid-hub=http://localhost:4444 但得到了错误: [INFO – 2016-03-25T13:56:28.397Z] GhostDriver – Main – 在端口8090上运行[INFO – 2016-03-25T13:56:28.397Z] GhostDriver – Main – 注册到Selenium HUB’http :// localhost :4444 ‘版本:使用’127.0.0.1:8090’与org.openqa.grid.selenium.proxy.DefaultRemoteProxy作为远程代理。 [ERROR – 2016-03-25T13:56:28.400Z] GhostDriver – main.fail – {“line”:97,“sourceURL”:“phantomjs://platform/hub_register.js”,“stack”:“register @” phantomjs://platform/hub_register.js:97:79 \ nglobal code @ phantomjs://code/main.js:78:37“} phantomjs://platform/console++.js:263错误 标准节点工作正常,但PhantomJS错误。 我做错了什么?

如何使用Java 使用Selenium WebDriver获取父HTML标记

我有一个搜索 。 在以前的级别上,我有一个包含多个值的字段集。 这是我的问题。 我没有获得此字段集的定位器。 首先,我得到一个包含所有class=legend对象的列表: List groupList = driver.findElements(By.className(“legend”)); 这很完美,我有一个包含几个Webelements的列表。 现在我想迭代此列表并仅保存上一级字段集中的每个值。 问题是Selenium找不到fieldset的id。 我尝试了tempGroupElement.getAttribute(“id”)来获取id,但它不起作用。 任何想法? 谢谢!

使用WebDriver暂时绕过隐式等待

当使用隐式等待时, 正如这里所建议的那样 ,我仍然有时想要断言元素的直接不可见性或不存在。 换句话说,我知道应该隐藏一些元素,并且希望我的测试能够快速地进行断言,而不需要花费几秒钟因为(否则有用)隐式等待。 我试过的一件事就是像这样的辅助方法: // NB: doesn’t seem to do what I want private boolean isElementHiddenNow(String id) { WebDriverWait zeroWait = new WebDriverWait(driver, 0); ExpectedCondition c = invisibilityOfElementLocated(By.id(id)); try { zeroWait.until(c); return true; } catch (TimeoutException e) { return false; } } 但是在上面的代码中,对until()的调用仅在隐式等待时间过去之后才返回,即它没有按我想要的那样做。 到目前为止,这是我发现的唯一方法: @Test public void checkThatSomethingIsNotVisible() { turnOffImplicitWaits(); // … the actual […]

如何使用Java调整Selenium WebDriver中当前浏览器窗口的大小?

在执行Selenium自动化测试期间,我需要将浏览器的大小调整为300×400。 如何使用Java在Selenium WebDriver(又名Selenium 2)中调整浏览器窗口的大小? [注意:需要调整浏览器窗口的大小以测试响应式网页设计(RWD)]

WebDriver从页面中删除元素

我正在使用Selenium WebDriver(ChromeDriver)。 我需要在处理后从DOM中删除一些元素(来自DOM模型)。 例如,我有一个以下元素: WebElement starRatingElement = reviewElement.findElement(By.className(“review-info-star”)); 如何从浏览器DOM模型中删除starRatingElement ? 如何使用Selenium WebDriver在Java中实现? 请举例说明。

为什么我们将firefoxdriver实例分配给webdriver

我是Java或Selenium的新手。 我只是需要帮助来理解一个基本问题。 为什么我们将firefoxdriver实例分配给WebDriver? WebDriver驱动程序=新的FirefoxDriver() 我知道这是Java中的后期绑定,因为我们可以在以后的时间点将IEDriver或其他实例分配给WebDriver。 问题1:但这适用于课程,对吧? 问题2:WebDriver是一个接口,那么我们可以创建一个接口的对象实例吗?