我试图为我的网页进行自动化测试,我正在使用Jasmine与selenium一起使用.
当测试chrome(使用chromedriver)时,我不可预测地得到下面的错误.它经常发生,当我运行测试套件时,它几乎没有完成.
我发现了这个错误的证据,但无法找到一个可靠的答案:https://bugs.chromium.org/p/chromedriver/issues/detail?id = 732(授予这是铬,我使用铬)
WebDriverError: no such session
(Driver info: chromedriver=2.21.371459 (36d3d07f660ff2bc1bf28a75d1cdabed0983e7c4),platform=Mac OS X 10.11.5 x86_64)
at WebDriverError (/Users/XXXXXXX/Documents/sweetmeeting/node_modules/selenium-webdriver/lib/error.js:27:10)
at Object.checkLegacyResponse (/Users/XXXXXXX/Documents/sweetmeeting/node_modules/selenium-webdriver/lib/error.js:639:15)
at parseHttpResponse (/Users/XXXXXXX/Documents/sweetmeeting/node_modules/selenium-webdriver/http/index.js:538:13)
at /Users/XXXXXXX/Documents/sweetmeeting/node_modules/selenium-webdriver/http/index.js:472:11
at ManagedPromise.invokeCallback_ (/Users/XXXXXXX/Documents/sweetmeeting/node_modules/selenium-webdriver/lib/promise.js:1379:14)
at TaskQueue.execute_ (/Users/XXXXXXX/Documents/sweetmeeting/node_modules/selenium-webdriver/lib/promise.js:2913:14)
at TaskQueue.executeNext_ (/Users/XXXXXXX/Documents/sweetmeeting/node_modules/selenium-webdriver/lib/promise.js:2896:21)
at /Users/XXXXXXX/Documents/sweetmeeting/node_modules/selenium-webdriver/lib/promise.js:2820:25
at /Users/XXXXXXX/Documents/sweetmeeting/node_modules/selenium-webdriver/lib/promise.js:639:7
at process._tickCallback (node.js:369:9)
From: Task: WebElement.isDisplayed()
at Driver.schedule (/Users/XXXXXXX/Documents/sweetmeeting/node_modules/selenium-webdriver/lib/webdriver.js:377:17)
at WebElement.schedule_ (/Users/XXXXXXX/Documents/sweetmeeting/node_modules/selenium-webdriver/lib/webdriver.js:1744:25)
at WebElement.isDisplayed (/Users/XXXXXXX/Documents/sweetmeeting/node_modules/selenium-webdriver/lib/webdriver.js:2110:17)
at driver.findElements.then.error (/Users/XXXXXXX/Documents/sweetmeeting/Test/front_end_testing/spec/dashboard_tester.js:251:34)
at ManagedPromise.invokeCallback_ (/Users/XXXXXXX/Documents/sweetmeeting/node_modules/selenium-webdriver/lib/promise.js:1379:14)
at TaskQueue.execute_ (/Users/XXXXXXX/Documents/sweetmeeting/node_modules/selenium-webdriver/lib/promise.js:2913:14)
at TaskQueue.executeNext_ (/Users/XXXXXXX/Documents/sweetmeeting/node_modules/selenium-webdriver/lib/promise.js:2896:21)
at /Users/XXXXXXX/Documents/sweetmeeting/node_modules/selenium-webdriver/lib/promise.js:2775:27
at /Users/XXXXXXX/Documents/sweetmeeting/node_modules/selenium-webdriver/lib/promise.js:639:7
at process._tickCallback (node.js:369:9)
Run Code Online (Sandbox Code Playgroud) 我遇到了一个奇怪的问题,寻找可以到达的最佳解决方案.我正在开发一个rails应用程序,它显示来自另一个应用程序(nodejs)正在使用的公共数据库的数据.所有CRUD操作都发生在另一个平台上.在rails应用程序中,我们只查询并显示数据.
在rails应用程序中,我需要自动更新视图而不刷新.例如
def index
@states = State.page(params[:state_page])
@level_one_companies = Company.includes(:state)
.where(level: 1)
.order('created_at DESC').limit(20)
@level_two_companies = Company.includes(:state)
.where(level: 2)
.order('created_at DESC').limit(20)
end
Run Code Online (Sandbox Code Playgroud)
在索引页面上,我将拥有每个表的表格,当新数据添加到州(或)级别1(或)级别2公司时,我需要刷新表格.
我知道我可以通过两种方式自动更新视图,即
通常在使用Action Cable时,我们将在db中创建记录后从服务器广播数据(在创建操作(或)after_save回调模型之后的.save之后).但是,我没有通过rails app创建任何记录.
我的第一个问题是,在这种情况下有没有办法使用动作电缆?
所以我选择了第二个选项,它运行正常.但它每隔X秒就会进行过多的db调用.有没有办法减少查询以更新视图?我能和这里一起去的最佳方式是什么?任何帮助高度赞赏.谢谢.
我正在尝试创建一个受控文本区域。
class TextArea extends React.Component {
constructor(props) {
super(props);
this.state= {
text: this.props.initial
};
this.handleChange = this.handleChange.bind(this);
}
handleChange(event) {
//some handle
}
render() {
return (
<textarea
value={this.state.text}
placeholder={this.props.initial}
onChange={this.handleChange}
/>
);
}
}
Run Code Online (Sandbox Code Playgroud)
出于某种原因,如果我this.props.initial在构造函数中console.log ,我会得到一个未定义的。
但占位符有效。
我想要做的是抛弃占位符并设置一个初始值,用户可以编辑和复制并与之交互。(基本上是普通文本而不是占位符,但我不能这样做,因为它不起作用)
我究竟做错了什么?
编辑:我传递props.initial给 textarea 的方式:
<TextArea
initial={this.state.json.initial}
text={this.state.json.text}
changeHandler={this.handleChange}
/>
Run Code Online (Sandbox Code Playgroud)
我从 $.getJSON 调用中获取 json 并且我认为 textarea 在 json 调用完成之前被呈现。有没有什么办法可以只在 componentWillMount 函数之后运行渲染函数?