`

WebElement.getText()为空解决方法

阅读更多

当使用getText()获取一个普通的链接文本时:

<a href="http://www.baidu.com">baidu</a>

如果得到的文本只为空,而非我们期望的baidu.那么尝试使用WebElement.isDisplayed()时候,将会得到false的结果.再尝试使用getAttribute("href"),发现能够争取获取href的值.由此可以说明:

  1. WebDriver判定isDisplayed为false的元素,那么getText()将为空
  2. isDisplayed为false的元素,依然可以通过getAttribute()方法获取元素的属性.

所以,当getText()为空的时候,可以通过两种方法获取链接的文本

  1. 修改页面当前元素,或者当前元素父元素的CSS,使元素的isDisplayed()值为true.
  2. 使用getAttribute("innerHTML")获取文本值

由此我们也可以知道,isDisplayed为false,是指那个元素是存在的,只是webdriver认为不见.回到关键问题,webdriver是如何判断一个元素是否displayed,请参照:

http://www.w3.org/TR/webdriver/#determining-visibility

 

事实上,我所要测试的link,在运行的时候并非隐藏而是可见的,运行中获取的CSS display值为block而非none.

大概是因为我的目标链接是在一个弹出下拉菜单中的原因

 

本文出自"lijingshou"博客,转载请务必保留此出处http://lijingshou.iteye.com/blog/2082704

分享到:
评论
1 楼 javapub 2017-09-04  
good point!

相关推荐

    SeleniumWebDriver菜谱

    `findElements` 方法与`findElement`类似,但它返回一个`WebElement`对象的列表,包含了所有匹配条件的元素。如果找不到任何元素,返回的列表将是空的。这在你需要查找多个相似元素时非常有用。例如,找出页面上...

    Fall2019Selenium

    4. 验证元素:`webElement.isDisplayed()`检查元素是否可见,`webElement.getText()`获取元素文本。 五、断言与异常处理 在测试过程中,我们通常会使用断言来验证预期结果是否正确。Java中的JUnit库提供了丰富的...

    Selenium:使用Selenium测试Web应用程序

    此外,还可以使用`webElement.click()`, `webElement.getText()`等方法进行交互和验证。 为了实现更复杂的测试场景,可以使用Page Object模式设计测试代码。Page Object模式将每个网页抽象为一个类,将页面上的元素...

    projetoCursoSeleniumJava:Selenium WebDriver实用程序教程

    - 获取元素文本:`webElement.getText()` - 刷新页面:`driver.navigate().refresh()` - 导航到新URL:`driver.get("http://www.example.com")` 6. **等待** - 显式等待:使用`WebDriverWait`等待特定条件满足...

    基于MacacaJava版的UI自动化示例.zip

    这个测试用例首先启动应用,找到 ID 为 "button_id" 的按钮并点击,然后验证新页面的标题是否为 "NewPageTitle"。如果所有步骤都按预期执行,测试就会通过。 在实际项目中,你可能需要编写多个测试用例,组织成测试...

    Java抓取网页数据Demo

    在IT领域,网络数据抓取是一项重要的技能,特别是在大数据分析、搜索引擎优化和市场研究中。...通过深入理解和实践,你将能熟练地利用Java进行网页数据抓取,为你的项目或研究提供强大的数据支持。

    Appium+TestNG自动化测试

    TestNG与Appium结合使用,可以为移动应用测试提供结构化的、可扩展的测试解决方案。 首先,要进行Appium+TestNG自动化测试,你需要确保你的开发环境已经准备就绪。这包括安装Java Development Kit (JDK)、Android ...

    SikuliRemoteWebdriver:sikuli驱动远程驱动版本

    你可以做一些像 WebElement we = sikuliremotedriverobject.findImage(url of image) we.getText(); 滚动整个页面以查找元素,而不仅仅是在视口中显示的区域。 示例程序: SikuliRemoteWebDriver driver = new ...

    Selenium测试需要jar包完全版

    3. **junit.jar**: JUnit是Java中最流行的单元测试框架,它为编写和运行测试提供了便利。在Selenium测试中,JUnit可以用来组织和执行测试用例。开发者可以定义测试类,每个类包含多个测试方法,每个方法对应一个特定...

    seleniumWebDriverjava版使用指南

    Selenium WebDriver结合Java,为Web自动化测试提供了一套强大且灵活的解决方案。通过熟悉和掌握上述概念及实践,你将能够编写出高效、稳定的自动化测试脚本,为你的Web项目保驾护航。在实际使用过程中,记得不断学习...

    selenium入门问题和解决

    【Selenium入门问题与解决详解】 Selenium 是一个强大的开源自动化测试工具,广泛应用于Web应用程序的测试。它支持多种编程语言,如Java、Python、C#等,允许开发者编写脚本来模拟用户对网页的交互行为。这篇教程将...

    公司招聘异地笔试题.doc

    System.out.println(title.getText()); } driver.quit(); } } ``` ### 知识点四:使用POP3协议收取Gmail邮件 #### 使用POP3协议收取Gmail邮件 为了定期从Gmail账户收取邮件,可以使用JavaMail API结合POP3...

    Selenium使用PageObject模式测试登陆页面

    return driver.findElement(By.id("welcome")).getText(); } ``` 在实际的测试用例中,我们可以创建一个测试类,利用PageObject来执行登录操作并进行验证。例如,使用JUnit进行单元测试: ```java @Test public...

    Selenium 浏览器自动化测试工具 --- 跨浏览器、跨平台

    Selenium 是一个开源的自动化测试框架,专为Web应用程序设计,它允许测试人员编写可运行在多种浏览器和操作系统上的自动化测试脚本。Selenium 的核心优势在于其跨浏览器和跨平台的能力,这意味着你可以在诸如Chrome...

    java和selenium自动化爬取超简单实例入门参考

    String title = titleElement.getText(); System.out.println("网页标题: " + title); ``` 如果要抓取其他节点,比如某个 ID 或 CSS 类选择器下的元素,可以使用 `By.id` 或 `By.className` 等方法。 步骤四:执行...

    零基础Appium自动化测试(windows.android)

    - 在项目中创建一个名为`apps`的文件夹,用于存放待测试的应用程序。 ##### 2. 导入Selenium和Appium类库 - **Selenium类库**:从官网http://selenium-release.storage.googleapis.com/2.44/下载selenium-java-...

    testspider.zip

    WebElement element = driver.findElementById("someId"); element.click(); ``` 【等待与断言】 在自动化测试中,确保元素加载完成并且可交互是重要的。Selenium提供了显式等待和隐式等待两种机制。显式等待指定...

    Selenium word 版本

    String text = element.getText(); ``` - **获取CSS属性**: - 获取元素的CSS属性值。 ```java String color = element.getCssValue("color"); ``` - **获取对象状态**: - 检查元素是否可见、是否被选中等。...

    webdriver基础学习

    如果需要找到多个相同的元素,可以使用 `findElements()` 方法,如 `List&lt;WebElement&gt; elements = driver.findElements(By.tagName("a"))`。 5. 层级定位: 通过先定位到父元素,然后从父元素中进一步定位子元素...

    java selenium 常见web UI 元素操作及API使用

    本文将深入探讨几种常见的Web UI元素及其在Selenium中的使用方法,包括链接、输入框、按钮、下拉选择框以及单选按钮。 1. **链接(link)**:在HTML中,链接通常由`&lt;a&gt;`标签表示。Selenium提供了多种方法来定位和操作...

Global site tag (gtag.js) - Google Analytics