2011-09-15 32 views
4

関連するコンテキストメニューによってステータス(テキスト形式)が変化する要素があります。ここで
が要素です:いくつかのアクションにSelenium:要素のテキストが変更されるのを待つ方法

td id="A" name="status"> StatusStart </td>  

、これは私は、テキストの変更がWAITFORCONDITIONを使用して、発生するのを待ちたい

td id="A" name="status"> StatusDone </td>  

になることができます。
はこれまでのところ、私が試してみた:

selenium.waitForCondition("selenium.isElementPresent(\"//td[@name='status' and text()='StatusDone']\");", "10000");  

が、テキストはtd要素の一部ではないので、それは動作しません。次のようにXPathを変更してみてください

function myfunc() {   
window.getGlobal().addSelectGroup('status'); window.getGlobal().addSelectItem('status','StatusStart'); 

答えて

0

あなたは、あなたがテキストであるため、それが動作しません」と言うvar_name="StatusDone"

4

:JavaScriptでは
は、私のようなものを参照してください。

//td[@name='status' and .//text()='StatusDone'] 

または

//td[@name='status' and contains(.//text(),'StatusDone')] 
1

一度繰り返しDO-しばらく(java)ループ内storeText(css=td[name=status],var_name)breakを実装することができtd要素の一部ではありません。奇妙なのは、あなたが表示するHTMLは、テキストがTD要素の一部であるであると言うからです。そして試したwaitForCondition()はまさにそれを行う方法です。私の推測では、TDのテキストは正確に "StatusDone"ではなく "StatusDone"(あなたのHTMLに基づいて)であるというのが私の推測です。もしそうなら、比較は決して一致しません。それを修正する明白な方法があります - スペースに定数を追加するか、比較の代わりにcontains(text(), 'StatusDone')を使います。

0

暗黙の待機?

driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); 
関連する問題