为了账号安全,请及时绑定邮箱和手机立即绑定

Selenium IDE使用指南五(常见问题)

标签:
爬虫

如何记录悬停?

鼠标悬停(aka悬停)操作很难作为记录周期的一部分自动捕获。

要在您的测试中添加鼠标悬停,需要进行一些手动干预。您可以通过两种不同的方式来做到这一点。

选项1:在录制时添加

  1. 录制时,右键单击要悬停的元素
  2. 在出现的菜单中,单击Selenium IDE,然后Mouse Over
  3. 确认Mouse Over测试步骤在测试中的正确位置(如果需要,将其拖放到其他位置)

选项2:在测试编辑器中手动添加

  1. 右键单击IDE中的测试步骤
  2. 选择 Insert new command
  3. 输入mouse overCommand输入字段
  4. Target输入字段中输入要悬停的定位器(或单击Select target in page并选择要悬停的元素)

为什么在日期输入字段中键入的数字不能正确显示?

通过Selenium IDE的命令行运行器运行测试时,会出现此问题。

要绕开它,您将需要启用w3c模式,您可以通过-c "chromeOptions.w3c=true"在启动运行程序时传递来进行此操作。

启用w3c模式会影响Selenium Actions的性能(如果您的测试最终使用它们)是毫无价值的,因此仅当日期输入字段存在问题时才使用此模式。

我如何让IDE等待特定条件成立才能继续进行?

在某些情况下,IDE中的内置等待策略还不够。发生这种情况时,可以使用可用的显式等待命令之一。

  • wait for element editable
  • wait for element present
  • wait for element visible
  • wait for element not editable
  • wait for element not present
  • wait for element not visible

如何在文本验证中使用正则表达式?

这是我们最终将要添加的功能(有关详细信息,请参阅问题141)。解决方法是,可以将XPath定位器与starts-withcontains关键字一起使用。

command	assertElementPresent
target	//a@[starts-with(.,'you are the') and contains(.,'User to log in today')]

我如何滚动?

Selenium IDE中没有用于滚动的独特命令,因为Selenium中没有实现任何命令。相反,您可以使用scrollToJavaScript中的命令通过指定xy滚动到所需坐标来完成此任务。

command	executeScript
target	window.scrollTo(0,1000)

保存文件

为什么我保存SIDE项目的位置不记得了?

为什么每次要保存项目时都需要逐步执行“另存为”流程?

为什么需要覆盖以前保存的文件?

所有这些问题都是同一个问题的一部分-因为浏览器扩展Selenium IDE不能访问文件系统。提供“保存”功能的唯一方法是通过下载文件。当IDE移至本机应用程序时,将解决此问题。这将使IDE具有首要的文件系统访问权限,从而使它能够提供优美的“保存”体验。

如果要保持更新,可以按照问题363进行操作

如何在严格的代理/防火墙后面安装IDE?

在某些情况下,您可能没有完全的公共Internet访问权限(例如,在“公司代理或防火墙”后面)。在这些环境中,您将需要获取内置的Selenium IDE ZIP文件的副本,以便记录自动测试脚本。可以在GitHub的“发布”部分中找到:

并非所有版本都包含“ selenium-ide.zip”,因为其中一些仅仅是“源代码”版本。查找具有此zip文件的最新版本。这意味着它是提交给Chrome和Firefox商店的最新版本。

正式签署的版本

从项目发行页面下载zip文件可为您提供未签名的ZIP文件。或者,您可以从以下位置获取经过正式签名的安装程序,这些安装程序可以在“安全环境”中更好地发挥作用:

注意:如果您已经安装了插件(例如,在便携式计算机上尝试获取安装程序的副本),则在尝试访问它们时只会看到“删除”按钮。因此,将它们删除一次,让安装程序移至另一台未连接的计算机,然后根据需要在主设备的浏览器中重新安装。

注意:您不能直接从Chrome商店中获取“ .crx”文件。相反,您需要在本地安装一次,然后转到计算机上的安装目录以进行检索。

附加了插件后,为什么没有保存对话框出现?

由于当前的Chrome错误,如果您不答复Selenium IDE发出的消息,则不会进行进一步处理。为了解决此问题,请确保侦听emit该实体的操作project并使用进行回复undefined

chrome.runtime.onMessageExternal.addListener((message, sender, sendResponse) => {
  if (message.action === "emit" && message.entity === "project") {
    sendResponse(undefined);
  }
});
点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消