上个月(2013年6月)的某个时候,我们的几个Capybara测试开始失败主要是因为他们试图点击的按钮不在视野中.理想情况下,我想弄清楚改变了什么.我们目前正在使用selenium-webdriver 2.33,但我已经尝试回到2.29但它仍然无效.我们目前只针对Firefox运行,也许是因为新版本的Firefox.
除此之外,我无法弄清楚如何将按钮滚动到视图中.从我收集的内容来看,我可以使用scrollIntoView,但不知道如何在Capybara步骤中调用它.我试过以下变化:
Capybara.current_session.driver.execute_script("arguments[0].scrollIntoView(true;)", find_button(button).native)
Run Code Online (Sandbox Code Playgroud)
但没有运气因为find_button本身不起作用.
注意:我们根据按钮的文字进行选择.可以根据ID进行选择,但需要对UI测试进行大量更改,因此我们希望避免使用它.
我有一个以 a<tr>作为基本元素的组件,它呈现得很好。但是当我尝试使用 测试它时mount,我收到一个警告:
Warning: validateDOMNesting(...): <tr> cannot appear as a child of <div>.
这是一个复制品:
import React, {Component} from 'react';
import {mount} from 'enzyme';
class Foo extends Component {
render() {
return (
<tr>
<td>moo</td>
</tr>
)
}
}
it('should not fail', () => {
const wrapper = mount(<Foo />);
console.log(wrapper.html());
});
Run Code Online (Sandbox Code Playgroud)
在对 的调用中mount,我可以用 包裹组件<table><tbody><Foo /></tbody></table>以使警告消失。但感觉应该有另一种方法来做到这一点,因为此警告不会发生shallow在应用程序本身中。
这是与: