2017-10-19 37 views
2

J'essaie d'automatiser la force de vente, mais j'ai quelques problèmes avec les localisateurs. J'utilise Python et le sélénium webdriver pour le faire.Comment localiser un élément dans une ligne de la liste de tables

Je suis en train de cliquer sur cet élément (extrait donné):

< th scope = "row" 
 
class = " dataCell cellCol1 " > < a href = "javascript:srcUp(%27%2F0019E00000SLiUQ%3FsrPos%3D0%26srKp%3D001%26isdtp%3Dvw%27);" 
 
data - seclke = "Account" 
 
data - seclkh = "73556054e04c9691f20b5b34809356fd" 
 
data - seclki = "0019E00000SLiUQ" 
 
data - seclkp = "/0019E00000SLiUQ" 
 
data - seclkr = "1" 
 
onmousedown = "searchResultClick.mousedown(this, event)" > Harris Kemp < /a></th >

cependant, pour une raison quelconque, il ne peut pas le localiser.

J'ai essayé différentes solutions que j'ai trouvées en ligne et aucune d'elles ne semble fonctionner.

Voici mon code:

driver.switch_to.frame(1) 
    # driver.switch_to.frame(driver.find_element_by_id("history-iframe")) 
    # mouseDown() // i entered the location of the element here 
    # pyautogui.click() // i entered the location of the element here 

Voici une autre façon que j'ai essayé:

elem = driver.find_element_by_xpath("//a[@data-seclkr='1']") 
    driver.execute_script("arguments[0].click();", elem) 

J'ai utilisé tous les différents XPath disponibles et il sera toujours pas cliquer dessus.

Il serait vraiment reconnaissant si quelqu'un pourrait aider s'il vous plaît.

I have attached the full html body image here

+0

Veuillez vous assurer de donner une brève explication de ce que vous essayez de faire au début. L'extrait peut être collé par la suite. Quelqu'un pourrait baisser votre question à cause de cela. Pour votre réponse maintenant, je suis en train de trouver quelque chose de similaire et je vais répondre quand je rentre à la maison :) –

+0

Merci pour les heads up Apolo Radomer :) – zplush

Répondre

3

Pour rechercher l'élément "Modifier", vous pouvez le faire:

elem1= driver.find_element_by_xpath("//td[@class='actionColumn']") 
elem1.find_element_by_xpath(".//a[@class='actionLink']").click() 

si vous voulez cliquer sur "Harris Kemp", essayez:

elem1= driver1.find_element_by_xpath("//th[@scope='row']") 
elem1.find_element_by_xpath(".//a[@data-seclke='Account' and text()='Harris Kemp']").click() 
+0

Merci pour votre réponse, qui cliquer sur le bouton Modifier si vous regardez le image ci-jointe j'essaie de cliquer sur le nom «Harris Kemp» dans le tableau. J'ai essayé ceci: 'elem1 = driver.find_element_by_xpath (" // td [@ class = 'DataCell cellCol1 '] ") elem1.find_element_by_xpath (" .// un [@ données seclkp ='/ 0019E00000SLiUQ' ] "). click()' et cela n'a pas fonctionné :( – zplush

+0

@zplush Heureux de vous aider Si cette réponse ou tout autre a résolu votre problème, veuillez le marquer comme accepté: stackoverflow.com/help/quelqu'un-réponses –

+0

@zplush de votre question, semble que vous voulez cliquer sur l'élément "Edit" –

1

Pouvez-vous choisir un simple une balise du site et essayez quelque chose comme ci-dessous?

Disons que c'est le script HTML:

<div id='a'> 
    <div> 
    <a class='click'>abc</a> 
    </div> 
</div> 

votre script python devrait être:

driver.find_element_by_xpath("//div[@id='a']//a[@class='click']") 

La sortie doit être:

<a class="click">abc</a> 

et puis essayer de mettre le .click() à la fin de votre code python

+2

Je pense que nous avons collé la réponse avec DurdenP simultanément: D Essayez son script. Ça devrait marcher. –