2017-05-19 3 views
0

J'ai cette ligne ci-dessous où j'essaie de passer une variable dans xpath en PHP.Passer une variable php dans xpath ne fonctionne pas

public function getTheIndexVal($index) 
{ 
    $this->click('.//*[@id="js_itemlist"]/li[3]/article/div[$index]/section[1]/ul/li[3]'); 
} 

J'appelle la méthode ci-dessus comme,

this->getTheIndexVal(3); 

Mais ce qui précède est de lancer une erreur. Son indice $ tel quel sans substituer la valeur. Cette valeur est transmise en tant qu'argument de méthode. J'ai essayé les alternatives ci-dessous. Toujours pas de chance.

$this->waitForElement('.//*[@id="js_itemlist"]/li['.$index.']/article/div[3]/div/div[1]', 30); 

$this->waitForElement('.//*[@id="js_itemlist"]/li['{$index}']/article/div[3]/div/div[1]', 30); 

Comment puis-je y parvenir? Toute aide serait très appréciée.

+0

Est-$ indice ont une valeur? si oui, remplacez $ index par une valeur directe et déboguez-le ... – Naga

+0

Oui, je peux l'imprimer sur la console. J'ai édité la question avec ce que j'ai exactement. – mayooran

Répondre

1

Utilisez des guillemets doubles pour la variable $index à substituer correctement avec la valeur correspondante:

public function getTheIndexVal($index) 
{ 
    $this->click(".//*[@id='js_itemlist']/li[3]/article/div[$index]/section[1]/ul/li[3]"); 
}