【问题标题】:Choose title- and file name at runtime在运行时选择标题和文件名
【发布时间】:2016-05-15 04:07:28
【问题描述】:

我正在尝试在两个浏览器中自动上传文件,但窗口名称在 Firefox 中为“文件上传”,在 Chrome 中为“打开”。我不想写两个不同的脚本。

如何在运行时选择标题和文件名以实现跨浏览器兼容性?我使用 Selenium 和 testNG,AutoIt 仅用于文件上传。

【问题讨论】:

  • 能分享一下代码 Neha 吗?
  • 在 Firefox 中:- ControlFocus("文件上传","","Edit1") ControlsetText("文件上传","","Edit1","C://file.xls") ControlClick("FIle Upload","","Button1") In chrome:- ControlFocus("Open","","Edit1") ControlsetText("Open","","Edit1","C://anotherfile .xls") ControlClick("Open","","Button1") 标题在不同的浏览器上发生变化,所以我的测试失败了..然后我想编写一个在运行时接受标题的 autoiT 脚本..还有一种方法可以在运行时也提供文件名???
  • @Neha Soni,不需要使用 AutoIt。 Selenium 支持在 <input> 元素上调用 sendKeys 的文件上传。
  • 我同意@florent,但开发人员没有提供文本输入选项,所以我必须找到其他第三方收费的出路
  • @Neha Soni,不需要输入文本,只需 <input> 元素,即使它是隐藏的。

标签: variables cross-browser runtime autoit


【解决方案1】:

根据所使用的网络浏览器设置一个变量,然后使用该变量。下面的代码应该能让你走上正轨。

$FirefoxUpload = "File upload"
$ChromeUpload = "Open"

if WinExists($FirefoxUpload)
  $UploadWindow = $FirefoxUpload
elseif WinExists($ChromeUpload)
  $UploadWindow = $ChromeUpload
else
  $UploadWindow = ""
endif

if $UploadWindow <> ""
  ControlFocus($UploadWindow,"","Edit1")
  ControlsetText($UploadWindow,"","Edit1","C://file.xls")
  ControlClick($UploadWindow,"","Button1")
endif

【讨论】:

  • 非常感谢戴尔,我认为这可能会解决我的问题。我还可以为要附加的不同文件创建一个运行时变量吗??
  • 是的。如果您希望用户选择文件,请查看 FileOpenDialog 上的帮助。如果您有列表,请查看有关 Arrays 的帮助。或者,也许您有一个文本文件中的文件列表,然后查看 AutoIt 帮助中的 FileOpen、FileRead、... 条目。
猜你喜欢
  • 2021-03-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多