2015-01-06 11 views
5

Non riesco a fare clic sui seguenti valori HTML tramite il comando di selezione del selenio del web tramite Java.Come fare clic su un testo in Selenium Webdriver 2.x

Ecco il mio HTML ... devo cliccare su PAAcctAcctRels, PAAcctActivityData, ecc come nel codice HTML.

Ho provato con LinkText (driver.findElement(By.linkText("PAAcctAcctRels")).click();) e XPath (driver.findElement(By.xpath(".//[@id='primaryNavLevel2Z6_G868H4S0K881F0AAEO37LG28N0']/div[1]/a")).click();)

<div id="primaryNavLevel2Z6_0G5A11K0KGF200AIUB98T20G52" class="dropdown_1columns"> 
    <div class="col_1"> 
    <a class="" href="?uri=nm:oid:Z6_0G5A11K0KGF200AIUB98T20G53"> 
     <strong> 
     <span lang="en" dir="ltr"> 
      PAAcctAcctRels 
      <span class="wpthemeAccess"> currently selected</span> 
     </span> 
     </strong> 
    </a> 
    </div> 
    <div class="col_1"> 
    <a class="" href="?uri=nm:oid:Z6_0G5A11K0KGF200AIUB98T20GD4"> 
     <span lang="en" dir="ltr">PAAcctActivityData</span> 
    </a> 
    </div> 
    <div class="col_1"> 
    <a class="" href="?uri=nm:oid:Z6_0G5A11K0KGF200AIUB98T20GT1"> 
     <span lang="en" dir="ltr">PAAcctAddrEmail</span> 
    </a> 
    </div> 

C'è un altro modo per fare this..please fatemelo sapere.

risposta

0

By.linkText("PAAcctAcctRels") non funziona perché quel collegamento ha più testo (ad esempio 'currently selected'), e il problema con il tuo xpath è che inizia con .//

il seguente dovrebbe funzionare (ho evitato di usare * per le prestazioni)

By.xpath("//div[@id='primaryNavLevel2Z6_G868H4S0K881F0AAEO37LG28N0']/div[1]/a") 
3

1- Per Facendo clic sul testo 'PAAcctActivityData', è possibile utilizzare il codice qui sotto:

driver.findElement(By.xpath("//span[.='PAAcctActivityData']")).click();

2- Per Facendo clic sul testo 'PAAcctAddrEmail', è possibile utilizzare il codice qui sotto:

driver.findElement(By.xpath("//span[.='PAAcctAddrEmail']")).click();

NOTA: - I XPaths di cui sopra sarà individuare il span elements con esatta innerHTML/testo 'PAAcctActivityData' o 'PAAcctAddrEmail', rispettivamente.

0

Provare a utilizzare // [@ id = 'primaryNavLevel2Z6_G868H4S0K881F0AAEO37LG28N0']/div [1]/a/span come xpath. Rimuovi l'iniziale '.' e aggiungi "/ span" alla fine.

Problemi correlati