2016-07-27 56 views
0

的多個按鈕如何點擊根據條件所需的按鈕在網頁中,有25個信息,可以有一個像打開不同的狀態,分配等硒,當頁面包含相同的結構

如果消息是打開的狀態,我想點擊「分配」按鈕,其中的ID是在飛行中生成的。如何識別,如何在這種情況下

下面點擊本按鈕,一個在頁面

<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

僅當消息(存在於正在測試的網頁中)狀態處於打開狀態時纔會出現分配按鈕。所以我想點擊Assign按鈕打開狀態信息。一個頁面可以包含0-25個打開的消息,因此在頁面中可能有25個分配按鈕 –

回答

0

所有的討論後,如果您要選擇第一assign按鈕,你只嘗試使用findElement,它可以讓你第一assign按鈕: -

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

現在,當你說有在頁面散裝兩種功能assign和個人assignDOM,批量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 
} 

或者您可以使用xpath找到如下第一個人assign按鈕: -

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

希望它能幫助.. :)

0

如果我理解正確,你的問題是與分配按鈕不位於正確的?如果是這種情況,那麼爲什麼不使用XPath定位器:.//a[@title='Assign to user']。你可以把它包裝到WebDriverWait中,等到元素出現。

+0

我想單擊「分配」按鈕以查看打開的狀態消息。一頁可以包含0-25個打開的消息,因此頁面中可能有25個分配按鈕。硒將隨機選擇分配按鈕,我想點擊加載的網頁中的第一個分配按鈕。 –

+0

如果您要分析DOM結構..總會有一些與打開的消息和相應的分配按鈕的關聯..然後你需要相應地調整XPath,然後點擊它 –

+0

試過這些 'driver.findElement(By.xpath(「// a [@ data-tooltip ='Assign to user']」)); driver.findElement(By.xpath(「// a [contains(@ data-tooltip,'Assign to user')]」)); ' 試圖分析dom –

相關問題