Html 如何使用capybara编辑div类

Html 如何使用capybara编辑div类,html,ruby-on-rails,ruby,selenium,capybara,Html,Ruby On Rails,Ruby,Selenium,Capybara,我有一个(我希望)简单的问题。有没有办法改变这样的事情 子标签 到 水豚的子标签 我正在查看的这个网站有一个非描述性 单选按钮和字段 以下是一些代码(很抱歉,这是纯javascript,我没有看到您的问题中提到使用cappybra的必要性的部分): 函数yourFunction(){ var element=document.getElementById(“ctl00\u ContentPlaceHolder1\u as1\u divDateRange”); 元素。类列表。添加(“打开”);

我有一个(我希望)简单的问题。有没有办法改变这样的事情

子标签

水豚的
子标签

我正在查看的这个网站有一个非描述性

单选按钮和字段
以下是一些代码(很抱歉,这是纯javascript,我没有看到您的问题中提到使用cappybra的必要性的部分):

函数yourFunction(){
var element=document.getElementById(“ctl00\u ContentPlaceHolder1\u as1\u divDateRange”);
元素。类列表。添加(“打开”);
}
。打开{
颜色:红色;
}
添加类
日期范围
2018年4月14日
2018年6月14日 单选按钮和字段
以下是一些代码(很抱歉,这是纯javascript,我没有看到您的问题中提到使用cappybra的必要性的部分):

函数yourFunction(){
var element=document.getElementById(“ctl00\u ContentPlaceHolder1\u as1\u divDateRange”);
元素。类列表。添加(“打开”);
}
。打开{
颜色:红色;
}
添加类
日期范围
2018年4月14日
2018年6月14日 单选按钮和字段
您可以使用JS来提问,但是您并不是在真正测试站点(假设您正在测试,而不仅仅是抓取)。要通过JS和Capybara 3.2+实现这一点,您可以

page.find("#ctl00_ContentPlaceHolder1_as1_divDateRange").execute_script("this.classList.add('open');")
在3.2之前,您需要执行以下操作

el = page.find("#ctl00_ContentPlaceHolder1_as1_divDateRange")
page.execute_script("arguments[0].classList.add('open');", el)
也就是说,即使没有任何可用属性(假设页面上有大小),也有很多方法可以通过作用域来单击

page.find("#ctl00_ContentPlaceHolder1_as1_divDateRange > .header > a").click

您所要求的是使用JS是可能的,但是您并没有真正测试站点(假设您正在测试,而不仅仅是抓取)。要通过JS和Capybara 3.2+实现这一点,您可以

page.find("#ctl00_ContentPlaceHolder1_as1_divDateRange").execute_script("this.classList.add('open');")
在3.2之前,您需要执行以下操作

el = page.find("#ctl00_ContentPlaceHolder1_as1_divDateRange")
page.execute_script("arguments[0].classList.add('open');", el)
也就是说,即使没有任何可用属性(假设页面上有大小),也有很多方法可以通过作用域来单击

page.find("#ctl00_ContentPlaceHolder1_as1_divDateRange > .header > a").click

先生,你是我的英雄。您的第三个解决方案非常有效。我没有JS的经验,所以我很高兴我现在可以避免它。先生,你是我的英雄。您的第三个解决方案非常有效。我没有JS的经验,所以我很高兴我现在可以避免它。