【发布时间】:2018-02-10 19:32:42
【问题描述】:
我正在尝试为我公司一直为之工作的客户编写一些自动化测试。其中一项测试是让 Selenium-WebDriver 输入用户名和密码并登录。当我以人类用户的身份手动执行此操作时,我会被重定向到正确的页面(基本 url 页面)并成功登录。但是,如果我让 Selenium-WebDriver 执行此操作,页面会被重定向到 /users/:id 并出现 404 错误。
我已将代码以最基本的形式粘贴在下面。我认为问题是由于页面重定向,但我不能确定。 (这是一个 Rails 项目,自动化测试是外部的。)我尝试添加延迟,尝试添加等待,甚至尝试降低 WebDriver 的速度来解决这个问题。似乎没有任何效果。我不知道如何在提交按钮的点击功能中直接添加等待。如果有人有任何进一步的想法,那就太好了。
require 'selenium-webdriver'
driver = Selenium::WebDriver.for :chrome
driver.navigate.to ''
driver.find_element(:id, 'user_email').send_keys ''
driver.find_element(:id, 'user_password').send_keys ''
driver.find_element(:name, 'commit').click
sleep 5 # this is so my eyes have time to see if it worked
driver.quit
提前致谢!
【问题讨论】:
-
您可能点击了错误的按钮,其中可能有更多名称为“commit”的按钮。如果你能把页面分享给我,我会告诉你更多。
-
好主意。不幸的是,我已经检查过了,只有一个。如果您愿意,可以查看页面源代码。我通过查看并加载名称为“commit”的所有标签的数组进行了检查。
-
当我在您的代码中手动使用凭据时,我被重定向到 sgstoolwizard.com/users/1 并收到消息,“您要查找的页面不存在。您可能输入了错误的地址或该页面可能已移动。如果您是应用程序所有者,请查看日志以获取更多信息。”看起来登录页面有问题或凭据错误。
-
顺便说一句,如果您想查看它是否有效,请删除最后一行
driver.quit。 :) -
我是说我无法使用上面代码中的凭据手动使其工作。
标签: ruby-on-rails ruby selenium-webdriver