Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Selenium I';我试图找到一个无形的领域来填补使用水豚,但我所做的似乎没有工作_Selenium_Rubygems_Automated Tests_Capybara_Qa - Fatal编程技术网

Selenium I';我试图找到一个无形的领域来填补使用水豚,但我所做的似乎没有工作

Selenium I';我试图找到一个无形的领域来填补使用水豚,但我所做的似乎没有工作,selenium,rubygems,automated-tests,capybara,qa,Selenium,Rubygems,Automated Tests,Capybara,Qa,我目前正在尝试使用水豚来填写谷歌登录表单,但我最难找到要填写的隐藏字段 这是我试图填写的字段的HTML 这是测试代码 require "rails_helper.rb" RSpec.describe "Sign in page" do it 'displays the page intention' do visit('/mars') expect(page).to have_content 'Sign in with Google' end

我目前正在尝试使用水豚来填写谷歌登录表单,但我最难找到要填写的隐藏字段

这是我试图填写的字段的HTML

这是测试代码

require "rails_helper.rb"

RSpec.describe "Sign in page" do
    it 'displays the page intention' do
        visit('/mars')
        expect(page).to have_content 'Sign in with Google'
    end
    it 'fills in user information' do
       find(:xpath, '//*[@id="identifierId"]', visible: false)
    end
end

这就是我遇到的错误。

首先,你不应该试图填充隐藏字段,你应该像用户那样与可见元素交互。在这种情况下,可能意味着需要先单击另一个元素,以触发电子邮件输入变为活动状态。差不多

first('form div[jscontroller]').click
fill_in('identifierId', with: email)
应该适用于谷歌登录页面

注意:在查找元素时,您应该尽可能使用CSS而不是XPath,因为它会更快、更易于阅读,并且不会无意中破坏元素范围(
/
vs
/
在XPath中-请参阅)

更新:此外,所有
it
块都是完全独立的,中间有一个浏览器重置,因此您需要访问每个块所需的页面(如果
description
中的所有
it
块都需要访问同一页面,您可以将访问放在
块之前的


注意:这一切都假设您实际上正在使用Selenium驱动程序进行此测试,正如问题标签所暗示的那样。

尝试使用ID“identifierId”@bhupathituraga进行查找,这会导致错误“找不到ID“identifierId”'首先切换到活动元素,然后使用I进行查找。我不熟悉switch命令,但我添加了“switch\u to\u frame”('identifierId')在find命令之前,我仍然得到相同的错误@bhupathituraigits not frame其just active element
driver.switch_to.active_element()
是的,我正在使用Selenium驱动程序进行此测试。我仍然很难找到正确的可见css。我尝试的每件事都会出现错误“Capybara::ExpectationNotMet:期望找到可见css”。@每天在访问页面几秒钟后睡眠,然后调用
保存和打开屏幕截图
并添加我需要的内容注意你的问题。你也可以暂停测试(通过推、撬、睡等)然后查看浏览器,看看当前页面的实际状态是什么-如果我发布的代码不起作用,那么听起来你好像不在google登录页面上。@我刚刚注意到的另一件事是——你的测试实际上没有访问任何地方-访问是在before块中吗?访问(“/mars”)转到该页。我在routes.db文件中指定了该位置。我还发现,在这两种情况下,该页无法正确刷新。无论我使其休眠多长时间,它都不会重新加载。@尽管如此,但您没有
访问('/mars')
在您的
中,它“填写用户信息”进行测试--
每个
都是完全独立的--屏幕截图(或只是查看浏览器)会向您显示它实际上不在页面上,因为每次测试之间浏览器都会重置为
关于:空白。