2016-07-27 7 views
0

含まれている場合、オープンのような異なるステータスを持つことができる25件のメッセージがありますが、割り当てなど、ページがWebページでは、同じ構造の複数のボタンを

場合メッセージが開いている状態で、私はその上でIDが生成されている "割り当て"ボタンをクリックしたいと思います。どのように識別し、どのようにこの場合には以下

をクリックすると、ページ内のボタンの存在の1つの

<a style="color:blue" 
class="btn assign" 
data-userchannel="tw_757840449054711808~28353935~1000" 
data-elementid="tw_757840449054711808" 
id="tw_757840449054711808" 
title="Assign to user" 
rel="act" 
href="/work/assignWork?messageId=tw_757840449054711808~SOLR&amp;dataSource=SOLR&amp;profileId=2305&amp;s360securetoken=mZ2GV6Tbfw7RubGR3Q05_dLM-XM" 
data-tooltip="Assign to user"> 
</a> 

静的要素のコードは、クラス、タイトル、ツールチップですされています。このシナリオをどのように達成するか。

+0

あなたはどうやったのか、 "状況" によって何を意味しましたあなたはメッセージの状態を知ることができますか? –

+0

cssSelectorを 'a.btn.assign'として使用すると、要素を見つけることができます。 –

+0

割り当てボタンは、(テスト対象のWebページにある)ステータスが開いている場合にのみ表示されます。だから私は開いているステータスメッセージのための割り当てボタンをクリックしたいと思います。 1つのページには0〜25件のメッセージが含まれている可能性がありますので、ページに25個のボタンを割り当てることがあります –

答えて

0

assignassign、バルクassignが最初に来るので、それが選択されていますが、バルクassignの後に来る個々の割り当てを選択したい場合は、findElementsを使用して、assignのボタンをすべて見つけて、以下: -

List<WebElement> elements = driver.findElements(By.cssSelector("a.btn.assign")).click(); 

if(elements.size() > 2) { 
    //Now here you can pass index to get individual assign button 
    elements.get(1).click(); //it will click second assign button and so on 
} 

それとも、以下のように最初の個別assignのボタンを配置するためにxpathを使用することができます: -

driver.findElement(By.xpath("(//*[@class = 'msgContent']/descendant::a[contains(@class,'btn assign')])[1]")).click(); 

はそれが役に立てば幸い.. :)

0

私が正しく理解している問題は、割り当てボタンが正しく配置されていないことです。その場合は、XPathロケータを.//a[@title='Assign to user']のように使用してください。これをWebDriverWaitの周りにラップして、要素が表示されるまで待つことができます。ページ一括に2つの機能があります言っているよう

driver.findElement(By.cssSelector("a.btn.assign")).click(); 

- :あなたはちょうどfindElementを使用してみてください最初assignボタンを選択したい場合、それはあなたの最初assignボタンを与え、すべての議論の後

+0

ステータスボタンをクリックしてステータスメッセージを開きます。 1つのページには0〜25件のメッセージが含まれている可能性があるため、1ページに25個のボタンを割り当てることができます。 Seleniumはランダムに割り当てボタンを選択します。ロードされたWebページの最初の割り当てボタンをクリックします –

+0

DOM構造を分析すると、開いているメッセージと対応するassignボタンとの関連が常にありますあなたはそれに応じてXPathを微調整してそれをクリックする必要があります –

+0

はこれらを試しました 'driver.findElement(By.xpath(" // a [@ data-tooltip = 'ユーザに割り当て']))); driver.findElement(By.xpath( "// a [(@ data-tooltip、 'ユーザーに割り当て')]))); ' domを分析しようとしています –

関連する問題