GVKun编程网logo

如何使用Selenium WebDriver从隐藏元素中读取文本?(selenium获取隐藏元素)

9

在这篇文章中,我们将带领您了解如何使用SeleniumWebDriver从隐藏元素中读取文本?的全貌,包括selenium获取隐藏元素的相关情况。同时,我们还将为您介绍有关css–如何使用Seleni

在这篇文章中,我们将带领您了解如何使用Selenium WebDriver从隐藏元素中读取文本?的全貌,包括selenium获取隐藏元素的相关情况。同时,我们还将为您介绍有关css – 如何使用Selenium WebDriver,Java按文本选择Web元素、java – 如何点击Selenium WebDriver中的隐藏元素?、javascript – Selenium WebDriver点击隐藏元素、Selenium WebDriver从:: before伪元素的CSS属性“content”获取文本的知识,以帮助您更好地理解这个主题。

本文目录一览:

如何使用Selenium WebDriver从隐藏元素中读取文本?(selenium获取隐藏元素)

如何使用Selenium WebDriver从隐藏元素中读取文本?(selenium获取隐藏元素)

我正在尝试1000从隐藏的示例中读取示例字符串<div>

<div id="hidden_div">1000</div>

我知道这WebElement.getText()不适用于Selenium2(WebDriver)中的隐藏元素,因此我搜索了解决方案(像这样),显然以下代码应该可以工作:

WebElement hiddenDiv = seleniumDriver.findElement(By.id("hidden_div"));String n = hiddenDiv.getText(); // does not work (returns "" as expected)String script = "return arguments[0].innerText";n = (String) ((JavascriptExecutor) driver).executeScript(script, hiddenDiv);

但这对我不起作用,变量n始终以结尾null。我究竟做错了什么?

答案1

小编典典

编辑:哦,这可行。

String script = "return document.getElementById(''hidden_div'').innerHTML";

在Firefox中。

这也是。

String script = "return arguments[0].innerHTML";

我也尝试过,但是它似乎不能用于纯Javascript。如此处所述,使用Jquery启动浏览器。如何在Selenium中使用JQuery?并使用以下代码编写脚本。

String script = "return $(''#hidden_div'').text();";

这可行。

css – 如何使用Selenium WebDriver,Java按文本选择Web元素

css – 如何使用Selenium WebDriver,Java按文本选择Web元素

我需要在网页上找到以下元素
<div>noreply@somedomain.com</div>

我正在使用Java编写Selenium WebDriver.
需要这个元素的确切CSS选择器才能将它与driver.findElement(By.cssSelector(the-selector).click命令一起使用.
div [class =’b-datalist__item__addr’]选择器不够好,因为我必须根据noreply@somedomain.com搜索不是链接的文本,所以我不能使用findElement(By.linkText())命令.

解决方法

Css不允许您进行基于文本的搜索. xpath是唯一的选择.
//div[contains(text(),'noreply@somedomain.com')]

java – 如何点击Selenium WebDriver中的隐藏元素?

java – 如何点击Selenium WebDriver中的隐藏元素?

我有一个网格显示一些记录.当我点击一个记录并检查该元素时,显示它被隐藏,但它在网格中可见.

我的HTML是:

<a href="http://192.168.1.6/eprint_prod_3.8/settings/othercost_add.aspx?type=edit&id=805" title="Plastic Spiral Bind"
<div> Plastic Spiral Bind </div>
</a>

上述代码在检查时隐藏,但在网格中可见.

硒代码:

driver.findElement(By.partialLinkText("Plastic Spiral Bind")).click();

解决方法

首先将元素存储在对象中,让我们说元素,然后写下面的代码来点击那个隐藏的元素:
JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript("arguments[0].click();",element);

javascript – Selenium WebDriver点击隐藏元素

javascript – Selenium WebDriver点击隐藏元素

嗨,我想知道如何使用Selenium WebDriver点击隐藏元素和/或禁用元素.

我知道用硒1我可以这样做如下:

selenium.click(id="idOfHiddenField");

并且这将工作,但是与硒2(WebDriver),这不是.我不想使用jquery来启用或显示隐藏的字段或JavaScript.这是因为大多数测试都在使用xpath.

或者我只需要留下旧的硒,让你点击隐藏的领域?

解决方法

有一个更简单的方法来解决问题使用JavascriptExecutor.

例如:

document.getElementsByClassName('post-tag')[0].click();

上述JavaScript将点击此页面右上方的“Selenium”标签(旁边的问题),即使它被隐藏(假设).

所有你需要做的是通过JavascriptExecutor接口发出这个JS指令,如下所示:

(JavascriptExecutor(webdriver)).executeScript("document.getElementsByClassName('post-tag')[0].click();");

这将使用JS沙箱和综合点击事件来执行点击操作.虽然它破坏了WebDriver用户活动模拟的目的,但是您可以将其用于您的情况下,在您的情况下很好的效果.

Selenium WebDriver从:: before伪元素的CSS属性“content”获取文本

Selenium WebDriver从:: before伪元素的CSS属性“content”获取文本

我正在尝试验证文本“提供的信息无效或不完整”.在 Java中使用Selenium / WebDriver显示.

我有以下HTML:

<div id="validationError">
    <ul>
        <li>required: Server Name</li>
        <li>required: Receiving Port</li>
    </ul>
</div>

使用以下CSS代码:

#validationError:before {
    content: 'The information provided is either invalid or incomplete.';
}

这是我目前的java代码:

WebElement errorBox = browser.findElement(By.id("validationError"));
Assert.assertNotNull("Could not find validation errors",errorBox);

System.out.println("Error Explanation: " + error.getCssValue("content") + "\n");

List<WebElement> errorList = errorBox.findElements(By.tagName("li"));
for (WebElement error : errorList) {
    System.out.println("Error: " + error.getText());
}

System.out.println("\nError Full Text: " + errorBox.getText());

这是我输出的上述代码:

Error Explanation:

Error: required: Server Name
Error: required: Receiving Port

Error Full Text: required: Server Name
required: Receiving Port

我似乎无法找到验证文本的方法“提供的信息无效或不完整.”被展示.在web元素上调用getText()也不会返回预期的字符串,但会在该div中显示任何其他普通文本.有任何想法吗?

解决方法

我不是100%确定WebDriver是否可以为您检索伪元素内容.我想你需要使用Javascript.下面的作品,我测试过.
String script = "return window.getComputedStyle(document.querySelector('#validationError'),':before').getPropertyValue('content')";
JavascriptExecutor js = (JavascriptExecutor)driver;
String content = (String) js.executeScript(script);
System.out.println(content);

这应该打印

The information provided is either invalid or incomplete.

关于如何使用Selenium WebDriver从隐藏元素中读取文本?selenium获取隐藏元素的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于css – 如何使用Selenium WebDriver,Java按文本选择Web元素、java – 如何点击Selenium WebDriver中的隐藏元素?、javascript – Selenium WebDriver点击隐藏元素、Selenium WebDriver从:: before伪元素的CSS属性“content”获取文本的相关知识,请在本站寻找。

本文标签: