を見つけよう。アプリはSPAです。 私がしたいのは、特定のタブを取得し、それをクリックすることだけです。 私はテストにOKをロードしました。ここ はそれが 「我々はいくつかのタブを持っている」ではなく「タブ名を見つけることができる」失敗渡しSelenium.webdriverこんにちは、私はモカとノードJSを使用していて、作業webdriverをセレンを取得しようとしていたタブのテキストvaue
describe("MYHtml",function(){
var driver;
var tabs;
driver = new webdriver.Builder()
.forBrowser('firefox')
.build();
driver.get("file:///home/myhtml.html");
test.after(function() {
driver.quit();
});
before(function(done){
driver.findElement(By.id("Tabs")).then(function(e){
e.findElements(By.tagName("li")).then(function(b){
console.log("before got tabs length " + b.length);
tabs=b;
done();
});
});
});
test.it("we have some tabs",function(done){
assert.strictEqual(tabs.length,6);
console.log("we have tabs " + tabs.length);
done();
});
test.it("can find a tab name",function(done){
var span;
for(var i=0;i<tabs.length;i++){
tabs[i].findElements(By.tagName("span"))
.then(function(span){
console.log("Field??" + span.getText());
//return span;
done();
});
}
});)};
...私はこれを持っているスニペット私test.jsで
<div id="Tabs">
<ul>
<li> <span> one </span></li>
<li> <span> two </span></li>
...
<li> <span> six </span></li>
</ul>
</div>
ですこのエラー
1 failing
1) MYHtml can find tab name: TypeError: span.getText is not a function
と私は、Liを見つけようとしています - = 2 スパンテキストで例えばので、私はそれをクリックすることができます。
悲しいことに、私はまだ悲しいことにTypeError:tabs [i] .findElements(...)を取得しています。getTextは関数ではありません – sferret
この回答にはいくつか問題があります。 1つの大きな問題は、この非同期コードが完全に( 'done'を呼び出すか、または約束を返すことによって)行われたときに、Mochaに指示するための規定がないことです。 – Louis
done()をコードに戻しました。間違って削除されました。元のテストに戻って明らかに@sferretは、単一の値( 'タブ名を見つけることができます')が必要であることを示唆しているので、スパンの配列から必要なものを決定する必要があります。 – PeterS