本文转载自open经验库:原文链接
1.在已加载了JQuery的页面上可以直接使用JQuery选择器
例如www.jquery.com网站,如果我们想定位红框中导航栏中的偶数为就可以使用jquery的伪选择器:even
具体实现如下
package com.example.tests; import static org.junit.Assert.*; import java.util.*; import org.junit.*; import org.openqa.selenium.*; import org.openqa.selenium.ie.InternetExplorerDriver; public class test { WebDriver driver = new InternetExplorerDriver(); JavascriptExecutor jse = (JavascriptExecutor)driver; @Test public void jQueryTest() { driver.get("http://www.jquery.com/"); //在executeScript中调用jQuery.find(jquerySelector); List<WebElement> elements = (List<WebElement>)jse.executeScript("return jQuery.find" +"('.menu-item a:even')"); assertEquals(3,elements.size()); assertEquals("Download",elements.get(0).getText()); assertEquals("Blog",elements.get(1).getText()); assertEquals("Browser Support",elements.get(2).getText()); driver.close(); } }
2. 另一种情况就是页面没有另载jQuery,我们需要先 判断再自已手动注入,以百度为例,百度首页是没有加载的
package com.example.tests; import static org.junit.Assert.*; import java.util.*; import org.junit.*; import org.openqa.selenium.*; import org.openqa.selenium.ie.InternetExplorerDriver; public class Selenium2{ WebDriver driver = new InternetExplorerDriver(); JavascriptExecutor jse = (JavascriptExecutor) driver; @Test public void jQueryTest() { driver.get("http://www.baidu.com/"); injectjQueryIfNeeded(); List<WebElement> elements = (List<WebElement>) jse .executeScript("return jQuery.find('#nv a')"); assertEquals(7, elements.size()); // 验证超链接的数量 for (int i = 0; i < elements.size(); i++) { System.out.print(elements.get(i).getText() + "、"); } driver.close(); } private void injectjQueryIfNeeded() { if (!jQueryLoaded()) injectjQuery(); } // 判断是已加载jQuery public Boolean jQueryLoaded() { Boolean loaded; try { loaded = (Boolean) jse.executeScript("return " + "jQuery()!=null"); } catch (WebDriverException e) { loaded = false; } return loaded; } // 通过注入jQuery public void injectjQuery() { jse.executeScript(" var headID = " + "document.getElementsByTagName(\"head\")[0];" + "var newScript = document.createElement('script');" + "newScript.type = 'text/javascript';" + "newScript.src = " + "'http://ajax.googleapis.com/ajax/" + "libs/jquery/1.7.2/jquery.min.js';" + "headID.appendChild(newScript);"); } }
相关推荐
Selenium WebDriver的扩展包括jQuery / Sizzle选择器支持。 产品特点 主要 支持嵌套选择器 易于设置:安装NuGet软件包并开始与您现有的Selenium解决方案一起使用 通过与Appveyor的持续集成设置,单元和集成测试以及...
- 使用jQuery选择器定位元素。 - 利用jQuery修改DOM结构。 #### 十一、fireevent的替代方案 第十一章提供了一些fireevent方法的替代方案。在某些情况下,直接触发事件可能不如预期那样工作,因此了解其他的事件...
使用`querySelector`和`querySelectorAll`结合CSS选择器可以精确地定位到目标元素。 3. **jQuery库**:jQuery简化了JavaScript的DOM操作,提供了如`$("#id")`, `$(".class")`等简洁的语法来获取元素。此外,jQuery...
在这个课程中,你将学习到如何编写Python脚本来处理各种Web页面上的文件上传和日期选择器,从而提升你的Web自动化测试技能。通过实践和理解这些概念,你将能够更有效地自动化测试包含此类交互的Web应用程序,提高...
开发者可以利用熟悉的jQuery选择器和方法来定位页面元素,编写测试脚本。 3. **断言库**:FuncUnit提供了丰富的断言函数,如`F.attachments()`, `F.exists()`, `F.text()`, `F.val()`等,用于检查页面状态和元素...
在使用Selenium Query时,我们可以用CSS选择器来选取DOM元素,就像在jQuery中那样。例如,`qs('#elementId')` 就可以获取到ID为`elementId`的元素。此外,它还支持链式调用,如`qs('div').siblings().eq(1)`,这使得...
4. **通过CSS选择器定位:** CSS选择器语法更简洁,易于阅读。 5. **通过DOM模型定位:** 直接访问DOM树中的节点。 6. **通过链接文本定位:** 用于定位超链接。 7. **通过jQuery定位:** 利用jQuery的强大功能进行...
通过CSS选择器或jQuery式的链式调用来找到商品标题和图片URL。 5. **图片下载**:对每个找到的图片URL,使用Python的`requests`库下载图片到本地,并保存到特定目录。 6. **图片压缩**:可以使用第三方库如`Pillow...
在`setup_collection`文件中,可以创建一个BeautifulSoup对象,然后通过选择器或方法找到特定的HTML元素,提取所需信息。 2. **requests**:这是Python中用于发送HTTP请求的核心库。通过requests库,我们可以轻松地...
学习选择器的使用,如类选择器、ID选择器,以及盒模型、定位和浮动等概念。理解CSS3的新特性,如响应式设计,将有助于进行更精细的UI测试。 5. **掌握js的基本用法**:JavaScript是网页动态效果和交互的核心语言。...
例如,通过CSS选择器或XPath表达式找到特定按钮,然后调用click()方法实现模拟点击。 三、Puppeteer Puppeteer是Google Chrome团队开发的一个Node.js库,它提供了一组高级API来控制Chromium或Chrome浏览器。...
另一种方法是使用CSS选择器或XPath表达式,按照特定规则选择控件。 5. **ClearText.cs**:根据文件名推测,这可能是一个C#代码文件,用于实现上述的遍历和处理网页控件的功能。在C#中,可以使用`WebBrowser`控件或...
# 使用CSS选择器 titles = soup.select('.title') for title in titles: print(title.text) ``` 4. **PyQuery**: 类似jQuery的Python库,用于方便地操作DOM。 - **遍历**:遍历DOM节点。 - **获取信息**:...
示例代码中展示了如何使用CSS选择器来定位这些元素。 5. 异常处理: 任何网络爬虫都可能会遇到网络不稳定、页面元素无法定位等问题,这些问题会导致爬虫程序异常。因此,在编写爬虫代码时,加入异常处理非常重要,...
- **jQuery-like Selectors**:一些库,如Cheerio和JSDOM,提供了类似jQuery的API,使得在Node.js中使用选择器更加方便。 在实际应用中,我们还需要注意一些其他问题,如反爬策略(如User-Agent切换、验证码解决、...
这个版本包含了许多改进和修复,例如对WebGL的支持,更完善的CSS3选择器,以及对HTML5特性的增强。此外,它还提供了API,可以方便地与各种JavaScript库集成,如jQuery和Selenium WebDriver。 在下载并解压这个二...
jQuery选择器用于高效定位HTML元素,而页面对象模型则将这些元素映射为可操作的对象,提高了代码的可读性和维护性。测试库支持与Spock、JUnit、TestNG等流行测试框架的集成,允许测试人员选择熟悉的测试语法。所有...
- **高级定位策略**:探索不同的定位策略,如绝对路径、相对路径、CSS选择器和XPath等。 ##### 4. **重构测试** - **DRY原则**:即“不要重复自己”(Don't Repeat Yourself),用于减少代码冗余。 - **设置和清理...