在jquery上使用webdriver execute-script是行不通的
Using webdriver execute-script on jquery does not work
我试图使用webdriver的execute_script()来运行jquery,但没有运气。下面是我执行的步骤:
-
从Selenium/Webdriver中运行execute_script(),如下所示:
jquery_string = 'return $(''[id="ClusterMembers:ClusterMembersScreen:ttlBar"]'')' web_element = driver.execute_script(jquery_string)
返回错误:
WebDriverException: Message: $ is not defined
Build info: version: '2.53.0'…
-
从调试器保持上述函数调用,从selenium客户端机器转到常设FF浏览器,然后在开发者控制台输入相同的jquery字符串,如下所示(在输入"allow paste"之后):
$('[id="ClusterMembers:ClusterMembersScreen:ttlBar"]')
=>控制台按预期返回
-
在运行与(1)相同的上述代码之前添加了以下代码:
driver.execute_script(open('Cjquery-2.2.4.js').read()) TestCase.assertTrue(cluster_page.driver_util.driver.execute_script("return jQuery.active == 0"))
=>从调试器返回的"web_element"的值不是一个webelement对象,而是一个字典,包含以下内容:
{'mouseout': 'function ( data, fn ) {'n't'treturn arguments.length > 0 ?'n't't'tthis.on( name, null, data, fn ) :'n't't'tthis.trigger( name );'n't}', ....
我已经尝试使用最新版本的jquery(3.1),但仍然得到相同的失败
我想知道这个问题是否与"允许粘贴"有关FF或其他我一直缺失的东西?如果有人能告诉我,我很感激?
不使用$ try,使用this:
jquery_string = "jQuery('[id*=ClusterMembers][id*=ClusterMembersScreen][id*=ttlBar]');"
尽量避免在选择器中使用':',否则可能会导致错误。
相关文章:
- html文件中的script标记根本不起作用
- 骨干's Router.execute(callback,args,name)方法获取未定义的名称
- 用javascript将script元素附加到头部;铬不能工作
- script标记如何解析node_modules的路径
- 在<script src=“"></脚本>标签
- Google Script HtmlService,通过多个选项卡复制URL变量
- 为什么firefox开发人员控制台引用script.js
- 等效于<script src=“;something1.json”></脚本>
- If Else Java Script HTML
- strongloop script.js run find in before delete方法:如何同步运行异步方法
- 是否在Script Src标记中包含Script<脚本>(JavaScript等)
- Java Script将对象方法映射到数组中的对象
- 如何在Java Script中比较二维数组和一维数组,并将常见数据存储在另一个数组中
- LABjs错误:脚本总是使用.script()来执行加载的序列
- 从JSP页面调用Java Script函数未返回值
- 显示“<script src='some.js'></脚本>"在Html文档中
- 当用$.getScript()加载脚本时,有一种方法可以从用$.get script()装载的脚本中调用父脚本中的函数
- Script won't execute location.href
- 为什么我得到“Can't execute code from a free script”?
- 在jquery上使用webdriver execute-script是行不通的