selenium - 方法executeScript(selenium web driver)不能定义全局变量供以后使用?

标签 selenium selenium-webdriver selenium-chromedriver

我正在使用该方法 executeScript在 selenium web driver 中,我发现了一个问题:

js.executeScript("var b='1'; ");
js.executeScript("alert(b)");

运行上面的代码后,我想得到一个值为 1 的警报窗口,但它说:
b is not defined

我的问题是:我定义了 b作为全局变量,但为什么我以后不能得到它?

最佳答案

将变量定义为

var b='1'

将范围限制为脚本的执行。 Selenium 将 javascript 片段的执行包装到它们自己的脚本中,因此您的变量不会在脚本结束后继续存在。尝试
window.b = '1';

然后后来
alert(window.b);

将变量放入全局范围。

关于selenium - 方法executeScript(selenium web driver)不能定义全局变量供以后使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13858096/

相关文章:

java - 范围报告 3 添加屏幕截图

java - Selenium跳过具有隐藏属性的html元素

java - 如何在 Mac 中运行 Selenium Webdriver 测试

javascript - 如何在 JavaScript 中模拟 Selenium Webdriver 中的 HTML5 拖放

firefox - Selenium-WebDriver 不适用于代理

python - 如何使用selenium python从动态表中提取数据?

java - Selenium 预期条件,Webdriver 的实例来自哪里?

selenium - 升级到 Selenium Grid 4.0.0 后,Chrome Node 未注册到 Selenium Hub

java - 使用 Selenium WebDriver JavascriptExecutor 在单独的脚本中操作一个 JS 变量

ruby-on-rails - Heroku/Rails 上的 Chromedriver:无法加载应用程序:Selenium::WebDriver::Error::WebDriverError:不是文件: "/usr/local/bin/chromedriver"