=
其实很简单,js有返回值就可以。普通的执行js没有返回值,这要注意。
=
参考:https://blog.csdn.net/Genevar/article/details/115552169 有改动!!!
如何(python+selenium )返回js执行结果
通过常规方法:
js = “document.getElementById(‘input-286’).value;” //注意这里的js没有返回值
a = driver.execute_script(js)
print(a)
执行后,返现print结果为None。其实JS得到了执行,比如给value 赋值,页面输入框内容发生变化,说明元素定位以及js执行是正常的。但是用 print(type(driver.execute_script(js)))打印结果类型。会提示 无类型。
问题的答案在于:如果需要返回值,需要在js 的前面加上return
即:
js = “return document.getElementById(‘input-286’).value;”//注意这里的js *有了*返回值
然后print(driver.execute_script(js))就可看到结果。
如果元素只能通过xpath定位,变化一下js语句,在js语句前加return,也可得到js执行结果。
js = “return document.evaluate(xpath, document).iterateNext().value”
print(driver.execute_script(js))
参考:https://blog.csdn.net/majixiang1996/article/details/112484449
=
=
=
相关推荐
在Selenium自动化测试框架中,Javascript脚本的执行是一个非常重要的部分,它使得测试人员可以更加灵活地控制浏览器行为,进行复杂的操作。Selenium提供了driver.execute_script()方法用于执行Javascript代码,该...
总的来说,Selenium虽然主要设计用于Web UI测试,但通过JavaScript执行和数据解析,它也能有效地封装和处理POST请求,这对于测试涉及异步请求的场景尤其有用。不过,如果仅关注HTTP请求,更推荐使用像`requests`这样...
它的核心功能在于通过HTTP协议接收来自客户端的命令,并将这些命令转发给目标浏览器执行,同时将结果返回给客户端。这种方式使得Selenium RC具有高度的灵活性和可扩展性。 Selenium RC主要包含两个部分:服务器...
测试案例通过Client Lib的接口向Selenium Server发送Http请求,Selenium Server对请求进行解析,然后通过Http Proxy发送JS命令通知Selenium Core执行操作浏览器的动作。 (4).Selenium Core接收到指令后,执行操作。 ...
首先,Selenium Core 是整个框架的基础,包含一组 JavaScript 库,用于控制浏览器的行为。这些库可以通过网页上的特殊指令来执行各种操作,例如点击按钮、填写表单、导航页面等。开发者可以将这些指令嵌入到 HTML ...
5. **收集结果**:浏览器执行完命令后,会将结果返回给Selenium Server,再由Server传递回测试脚本,这样你可以验证测试是否成功。 6. **关闭资源**:测试结束后,记得关闭浏览器和Selenium Server。 使用Selenium ...
Selenium-RC 通过服务器和客户端之间的通信来工作,服务器接收测试指令,通过JavaScript在浏览器中执行,并将执行结果返回给客户端。 在使用 Selenium RC 之前,我们需要做一些准备工作: 1. 下载 selenium-rc 的...
在处理确认对话框时,记得捕获返回的结果,因为某些情况下,对话框的响应可能会影响后续的脚本执行。 3. **输入对话框**(Prompt):这种对话框会要求用户输入信息。处理输入对话框时,首先使用 `driver.switch_to....
Selenium特别适合动态网页的数据爬取,尤其在需要模拟用户登录、点击、滑动等操作时,通过执行JavaScript语句,可以轻松实现对复杂交互的支持。 然而,Selenium的劣势也很明显,由于它需要创建一个真实的浏览器环境...
JavaScript执行 - `executeScript(String script, Object... args)`: 执行JavaScript代码,可传递参数 - `executeAsyncScript(String script, Object... args)`: 执行异步JavaScript ### 7. 其他高级特性 - `...
通过上述示例,我们可以看到 C# 与 Selenium 结合后可以实现非常强大的功能,包括但不限于启动不同类型的 WebDriver、处理复杂的页面交互操作、执行 JavaScript 代码等。这些技术点对于自动化测试人员来说是非常重要...
- **执行JS脚本**:通过`executeScript(String script)`来执行JavaScript代码。 ##### 2.6 重用与封装 为了提高测试代码的可维护性和复用性,通常会将常用的方法进行封装: - **判断元素是否存在**:可以使用`try...
3. **返回结果**:操作完成后,服务器将结果反馈给测试脚本。 #### Selenium执行内部原理 当Selenium执行测试时,它实际上是在浏览器与服务器之间建立了一种桥梁。Selenium RC服务器接收来自测试脚本的命令,并将...
- **调用JavaScript**: 执行JavaScript代码: ```java ((JavascriptExecutor) driver).executeScript("alert('Hello, Selenium!');"); ``` - **Webdriver截图**: 对当前页面进行截图: ```java File screenshot...
Selenium Core是一堆Javascript函数集合,当Selenium RC通过网络与 Selenium Server通讯时(通过简单的Http Get或Post请求),Selenium Server解析客户端请求为Selenese Command,然后就会调用相应的JS函数来控制...
Selenium 2.0引入了WebDriver,它相比Selenium 1.0(Selenium RC)有显著优势,直接与浏览器通信,而不是通过JavaScript模拟用户操作。WebDriver支持多种浏览器,并且提供了一致的API接口,使得跨浏览器测试更为方便...
浏览器执行完指定动作后,将结果通过HTTP响应返回给驱动,驱动再将结果传回给WebDriver脚本。如果出现错误,HTTP响应状态码会提供有关错误的详细信息。 JSON Wire Protocol是WebDriver基于HTTP协议的一个扩展,它...
1. **元素定位**是Selenium测试中的核心技能,正确地定位网页元素是执行各种操作的前提。以下是一些常见的定位方法: - **使用浏览器工具检查页面元素结构**:对于Firefox、Chrome和IE等浏览器,你可以使用内建或...
服务器端则运行在被测试的浏览器上,接收命令并执行,将结果返回给客户端。 ### 3. WebDriver 元素操作 在WebDriver API中,可以使用`find_element_by_*`系列方法查找页面上的元素。例如,`find_element_by_id`、`...