【发布时间】:2019-10-12 10:15:02
【问题描述】:
我想用 Ruby 编写一个程序来创建一个 github 存储库。一切都很好,但是当我想在填写存储库名称后单击“创建存储库”按钮时,什么也没发生,程序因超时错误而停止。
这是禁用按钮的html代码:
<button type="submit" class="btn btn-primary first-in-line" data-disable-with="Creating repository…" disabled="">
Create repository
</button>
以及启用按钮的html代码:
<button type="submit" class="btn btn-primary first-in-line" data-disable-with="Creating repository…">
Create repository
</button>
这是我的红宝石程序
repo_name = gets.chomp
repo = browser.text_field(id: 'repository_name')
repo.set(repo_name)
browser.driver.manage.timeouts.implicit_wait = 3
create_button = browser.button(type: "submit")
create_button.wait_until(&:enabled?).click
我很确定我的 pb 来了,当我登陆页面时,按钮被禁用,即使我正在填写 repository_name 输入,我的 prog 也无法访问该按钮。
那么您对此有解决方案吗?或者你知道是否还有其他 pb 吗?
编辑:
当这里是没有等待命令的代码时:
repo_name = gets.chomp
repo = browser.text_field(id: 'repository_name')
repo.set(repo_name)
create_button = browser.button(type: "submit").click
当我运行它时,我得到了一个 'Watir::Exception::ObjectDisabledException' 错误
("element present, but timed out after 30 seconds, waiting for #
<Watir::Button: located: true; {:type=>"submit", :tag_name=>"button"}> to be enabled (Watir::Exception::ObjectDisabledException)"
【问题讨论】:
-
首先,当您使用 WATIR 时,您不必使用隐式等待。其次,您不必明确等待按钮启用,因为这太自动了。最后发布您在这里收到的错误消息。
-
感谢您的回答,我编辑帖子
-
好的,然后元素被禁用。手动执行相同的流程并检查它是否被禁用。
-
当我检查我的程序打开的网站页面时,在为 repo 名称填写 text_field 区域后,按钮从禁用变为启用。但是我的程序还是不能点击
-
好的,让我检查一下。但我今天做不到。星期一早上我可以。
标签: ruby github watir submit-button disable