gpt4 book ai didi

JavaScript - 使用 selenium-webdriver 将内部 html 返回给变量?

转载 作者:行者123 更新时间:2023-12-03 11:31:10 26 4
gpt4 key购买 nike

以下是我根据过去的 Python 项目尝试过的一些示例(此处我使用的是 JavaScript)...

var eltext = driver.findElement(webdriver.By.className('el')).text;
console.log(elname);

var eltext = driver.findElement(webdriver.By.className('el')).innerText;
console.log(elname);

var eltext = driver.findElement(webdriver.By.className('el')).innerHTML;
console.log(elname);

我还使用 String()JSON.stringify() 和各种 for 循环尝试了其他一些方法,这些方法都超出了我的选择。我可以执行 .click() 并且该对象是可点击的,所以我知道我的选择器是正确的,但是在 JavaScript 中访问内部文本是一个问题。

最佳答案

以下是具体操作方法:

var webdriver = require('selenium-webdriver');

var driver = new webdriver.Builder().
withCapabilities(webdriver.Capabilities.chrome()).
build();

driver.get('http://www.example.com');

var el = driver.findElement(webdriver.By.tagName('div'));

// Get the text of the element using getText...
el.getText().then(function (text) {
console.log(text);
});

// The code above could be shortened to this:
// el.getText().then(console.log);

// Get the inner HTML of the element using getInnerHtml...
el.getInnerHtml().then(function (html) {
console.log(html);
});

// The code above could be shortened to this:
// el.getInnerHtml().then(console.log);

// Get the text browser side plus the innerHTML at the same time.
driver.executeScript('\
var el = arguments[0];\
return {text: el.innerText, html: el.innerHTML};\
', el).then(function (val) {
console.log(val.text);
console.log(val.html);
});

driver.quit();

您必须使用.then,因为这些方法不返回值本身,而是返回一个promise来获取该值。

最后一个带有 executeScript 的方法同时获取两个值。如果您想知道为什么要为 executeScript 烦恼,原因是每次调用 getTextgetInnerHtml 都意味着 Selenium 客户端之间的往返(您的脚本)和 Selenium 服务器(浏览器)。在大型测试套件上,这些往返会累积,并可能会增加套件的运行时间分钟。我还把它放在那里是为了表明您可以使用此方法在浏览器上运行您想要的任何 JavaScript。

关于JavaScript - 使用 selenium-webdriver 将内部 html 返回给变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26725334/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com