SpiderFlow-selenium插件

时间:2026-02-15

selenium插件

selenium

引入selenium插件

  • 首先到码云下载插件点击下载selenium - 图1到本地并导入到工作空间或安装到maven库

  • 在spider-flow/spider-flow-web/pom.xml中引入插件

<!-- 引入selenium插件 --><dependency>    <groupId>org.spiderflow</groupId>    <artifactId>spider-flow-selenium</artifactId></dependency>

节点说明

  • 页面加载超时时间,单位为毫秒

  • 元素获取超时时间,单位为毫秒

  • URL:起始地址

  • 节点执行完毕后,会产生resp 类型为SeleniumResponse的变量

SeleniumResponse 属性

字段名称字段类型字段描述
htmlString页面HTML
jsonJSONObject/JSONArray内容转json结果
cookiesMap<String,String>cookies
urlString当前页面的URL
titleString当前页面的标题

SeleniumResponse 方法

switchTo

参数名描述可否为空
index/iframeName/WebElement要切换的iframe否
${resp.switchTo(index)}

TIP

返回值类型:SeleniumResponse

switchToDefault

切换至默认,即从iframe里切换回来

${resp.switchToDefault()}

selector

参数名描述可否为空
cssSelector要获取的cssSelector否

TIP

返回值类型:WebElement

  • 获取页面上的第一个div

${resp.selector('div')}

selectors

参数名描述可否为空
cssSelector要获取的cssSelector否

TIP

返回值类型:WebElements

  • 获取页面上的所有div

${resp.selectors('div')}

xpath

参数名描述可否为空
xpath要获取的xpath否

TIP

返回值类型:WebElement

  • 获取页面上的第一个div

${resp.xpath('//div')}

xpaths

参数名描述可否为空
xpath要获取的xpath否

TIP

返回值类型:WebElements

  • 获取页面上的所有div

${resp.xpaths('//div')}

executeScript

参数名描述可否为空
scriptjs脚本否
List<Object>参数否

TIP

返回值类型:Object

  • 执行js

${resp.executeScript('return "hello spider-flow-" + arguments[0];',['selenium'])}

quit

  • 退出浏览器

${resp.quit()}

toUrl

参数名描述可否为空
url要跳转的url否
  • 跳转到百度

${resp.toUrl('https://www.baidu.com')}

loadCookies

  • 将cookie加载至cookieContext中,以便后续自动管理cookie

${resp.loadCookies()}

WebElement 方法

html

TIP

返回值类型:String

  • 获取节点的html

${elementVar.html()}

text

TIP

返回值类型:String

  • 获取节点的text

${elementVar.text()}

attr

TIP

返回值类型:String

  • 获取节点的href属性

${elementVar.attr('href')}

selector

参数名描述可否为空
cssSelector要获取的cssSelector否

TIP

返回值类型:WebElement

  • 获取该节点下的第一个div

${elementVar.selector('div')}

selectors

参数名描述可否为空
cssSelector要获取的cssSelector否

TIP

返回值类型:WebElements

  • 获取获取该节点下的所有div

${elementVar.selectors('div')}

xpath

参数名描述可否为空
xpath要获取的xpath否

TIP

返回值类型:WebElement

  • 获取获取该节点下的第一个div

${elementVar.xpath('//div')}

xpaths

参数名描述可否为空
xpath要获取的xpath否

TIP

返回值类型:WebElements

  • 获取获取该节点下的所有div

${elementVar.xpaths('//div')}

screenshot

TIP

返回值类型:byte[]

  • 对该节点进行截图

${elementVar.screenshot()}

click

TIP

返回值类型:WebElement

  • 对该节点进行点击

${elementVar.click()}

sendKeys

TIP

返回值类型:WebElement

  • 对该节点进行模拟按键

${elementVar.sendKeys('hello spider-flow')}

clickAndHold

release

move

参数名描述可否为空
offset_xoffset x是
offset_yoffset y是

TIP

在该节点上模拟鼠标移动,当offset_x和offset_y为空时,则模拟鼠标移动到该节点上

doubleClick

pause

perform

TIP

以上6个方法是配套使用,调用perform时才是真正执行动作

  • 模拟鼠标移动到该节点上,等待500ms在点击,等待500ms在移动,最后释放(模拟拖拽滑块条)

 ${elementVar.move().pause(500).clickAndHold().pause(500).move(200,0).release().perform()}

WebElements 方法

html

TIP

返回值类型:List<String>

  • 获取节点的html

${elementsVar.html()}

text

TIP

返回值类型:List<String>

  • 获取节点的text

${elementsVar.text()}

attr

TIP

返回值类型:List<String>

  • 获取节点的href属性

${elementsVar.attr('href')}

selector

参数名描述可否为空
cssSelector要获取的cssSelector否

TIP

返回值类型:WebElement

  • 获取该节点下的第一个div

${elementsVar.selector('div')}

selectors

参数名描述可否为空
cssSelector要获取的cssSelector否

TIP

返回值类型:WebElements

  • 获取获取该节点下的所有div

${elementsVar.selectors('div')}

xpath

参数名描述可否为空
xpath要获取的xpath否

TIP

返回值类型:WebElement

  • 获取获取该节点下的第一个div

${elementsVar.xpath('//div')}

xpaths

参数名描述可否为空
xpath要获取的xpath否

TIP

返回值类型:WebElements

  • 获取获取该节点下的所有div

${elementsVar.xpaths('//div')}


免责声明:服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。
IPv4 © 2005-2026 库目书 版权所有 | kumushu.com .All Rights Reserved
黑ICP备2022003236号-1