2014-05-12 3 views
0

Comment puis-je incrémenter la valeur de la variable Xpath dans une boucle en python pour un script webdriver selenium?Boucler les variables xpath

search_result1 = sel.find_element_by_xpath("//a[not((//div[contains(@class,'s')]//div[contains(@class,'kv')]//cite)[1])]|((//div[contains(@class,'s')]//div[contains(@class,'kv')]//cite)[1])").text 

search_result2 = sel.find_element_by_xpath("//a[not((//div[contains(@class,'s')]//div[contains(@class,'kv')]//cite)[2])]|((//div[contains(@class,'s')]//div[contains(@class,'kv')]//cite)[2])").text 

search_result3 = sel.find_element_by_xpath("//a[not((//div[contains(@class,'s')]//div[contains(@class,'kv')]//cite)[3])]|((//div[contains(@class,'s')]//div[contains(@class,'kv')]//cite)[3])").text 

Répondre

0

pourquoi ne pas vous créer une liste pour stocker les résultats de recherche similaires à

search_results=[] 
for i in range(1,11) #I am assuming 10 results in a page so you can set your own range 
    result=sel.find_element_by_xpath("//a[not((//div[contains(@class,'s')]//div[contains(@class,'kv')]//cite)[%s])]|((//div[contains(@class,'s')]//div[contains(@class,'kv')]//cite)[%s])"%(i,i)).text 
    search_results.append(result) 

cet exemple de code va créer la liste des 10 valeurs des résultats. vous pouvez obtenir l'idée de ce code pour écrire le vôtre. C'est juste une question d'automatisation.

si
search_results[0] vous donnera premier résultat de recherche
search_results[1] vous donnera deuxième résultats de recherche
...
...
search_results[9] vous donnera le 10 résultat de la recherche

+0

Merci beaucoup ... qui a fait ma journée! – user3627283

+0

@ user3627283: si ma réponse vous a aidé alors vous pouvez voter en haut ma réponse et marquer la réponse acceptée :) –

+0

Malheureusement, Vote Up exige 15 réputation – user3627283

0

@Alok Singh Mahor , Je n'aime pas les gammes hardcoding. Devinez, une meilleure approche consiste à itérer à travers la liste des éléments Web:

search_results=[] 
result_elements = sel.find_elements_by_xpath("//not/indexed/xpath/for/any/search/result") 

for element in result_elements: 
    search_result = element.text 
    search_results.append(search_result) 
+0

qui était juste l'échantillon de code. parce que je n'étais pas au courant de son exigence exacte. Je ne sais même pas quel code HTML il a analysé. de sorte que le code était juste un indice qu'il est possible de faire une boucle :) –