2016-06-01 14 views
0

Im Versuch, den XPath in einem iframe genannt zu bekommen "gadget_6" called "gadget_6"Wie nehme ich XPATH in einen Iframe?

i XPath von ausgewählten div benötigen. Selen Mit i tun:

self.change_frame('__gadget_6') #Change to the correct iframe 

danach, ich versuche zu tun: für posterior tun

self.selec_orgvdc = self.driver.find_element(By.XPATH,'/html/body/div[5]/div/div/div/table/tbody/tr/td/div') 

:

self.selec_orgvdc.click 

aber ich erhalten den Fehler:

InvalidSelectorException: Message: invalid selector: Unable to locate an element with the xpath expression /html/body/div[5]/div/div/div/table/tbody/tr/td/div because of the following error: 
SyntaxError: Failed to execute 'evaluate' on 'Document': The string '/html/body/div[5]/div/div/div/table/tbody/tr/td/div' is not a valid XPath expression. 

Jemand kann mir helfen?

Neue Änderung:

self.change_frame('__gadget_6') 
time.sleep(4) 
self.logger.info("Buscando orgvdc") 
#self.selec_orgvdc = self.driver.find_element(By.CSS_SELECTOR,'div.GN4Y2ATIMD table div.gwt-Label') 
self.selec_orgvdc = self.driver.find_element(By.XPATH,'//div[5]/div/div/div/table/tbody/tr/td/div') 
self.logger.info("Encontrado!") 
+2

Mögliche Duplikate von [Selen Unable zu Ortung Element (Python) WebScraping] (http://StackOverflow.com/Questions/32636453/selenium-unable-to-Locate-Element-Python-Webscrapping) – unutbu

Antwort

0

XPath sollte nicht umfassen die/html/body. versuchen Sie dies:

self.selec_orgvdc = self.driver.find_element(By.XPATH,'//div[5]/div/div/div/table/tbody/tr/td/div') 

Beachten Sie, dass diese ziemlich spröde sein wird. Noch besser wäre es so etwas wie dieses CSS zu tun:

self.selec_orgvdc = self.driver.find_element(By.CSS,'div.GN4Y2ATIMD table div.gwt-Label') 
+0

Vielen Dank für Ihre Hilfe. Witt die Lösung (im Abschnitt neue Modifikation meines editierten Beitrags angewendet) Ich habe den Fehler NoSuchElementException: Nachricht: kein solches Element: Konnte Element nicht finden: {"method": "xpath", "selector": "// div [ 5]/div/div/div/tisch/tbody/tr/td/div "} –

+0

Sehen Sie? Spröde. Es sieht so aus, als ob es div [4] nicht div [5] von deinem Bild sein sollte. –

0

Hallo mit XPath innerhalb iframe zuerst arbeiten müssen Sie Ihre Treiber-Instanz ti Sitch, die dann iframe nur können Sie jede Aktion ausführen

1.To switch to an iframe plz do it like : driver.switchTo().frame("selfservice"); 

auch auf der Suche auf Ihrem Quellcode i eindeutig dort sehen kann 2 (zwei) ist i-Frames

1.iframe id = __gadget_6 2.iframe id = Self-Service

daher kann ich erraten, warum es nicht in Ihrem Fall arbeiten führen, dass Sie eine falsche wechseln i jetzt

Rahmen versuchen, diese XPath//*[@class='GN4Y2ATIMD']/div/div/div/table/tbody/tr/td/div diese Arbeit sicher ausführen klicken, wird.

Verwandte Themen