2017-06-13 6 views
1

Ich benutze RSelenium, um einen Datenrahmen mit Informationen über Manager zu konstruieren. Ich habe Probleme, ein Element in einer Dropdown-Liste auszuwählen.RSelenium kann Element mit gegebenen Parametern nicht finden

Mein Code ist folgende:

> require(RSelenium) 
> remDr<-remoteDriver(browserName = "chrome") 
> remDr$open() 
> enlace<-'https://www.sisben.gov.co/atencion-al-ciudadano/Paginas/Directorio-administradores.aspx' 
> remDr$navigate(enlace) 
> remDr$findElement(using = "xpath", '//*[@id="ddlDepartamento"]/option[2]')$clickElement() 

Mit der letzten Zeile, ich erhalte die folgende Fehlermeldung:

Selenium message:no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id="ddlMunicipio"]"} 
    (Session info: chrome=58.0.3029.110) 
    (Driver info: chromedriver=2.27.440174 (e97a722caafc2d3a8b807ee115bfb307f7d2cfd9),platform=Windows NT 10.0.14393 x86_64) (WARNING: The server did not provide any stacktrace information) 
Command duration or timeout: 140 milliseconds 
For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html 
Build info: version: '3.2.0', revision: '8c03df6', time: '2017-03-02 09:34:51 -0800' 
System info: host: 'PATY-FRAN', ip: '192.168.0.20', os.name: 'Windows 10', os.arch: 'x86', os.version: '10.0', java.version: '1.8.0_121' 
Driver info: org.openqa.selenium.chrome.ChromeDriver 
Capabilities [{applicationCacheEnabled=false, rotatable=false, mobileEmulationEnabled=false, networkConnectionEnabled=false, chrome={chromedriverVersion=2.27.440174 (e97a722caafc2d3a8b807ee115bfb307f7d2cfd9), userDataDir=C:\Users\victor\AppData\Local\Temp\scoped_dir6076_6551}, takesHeapSnapshot=true, pageLoadStrategy=normal, databaseEnabled=false, handlesAlerts=true, hasTouchScreen=false, version=58.0.3029.110, platform=XP, browserConnectionEnabled=false, nativeEvents=true, acceptSslCerts=true, locationContextEnabled=true, webStorageEnabled=true, browserName=chrome, takesScreenshot=true, javascriptEnabled=true, cssSelectorsEnabled=true, unexpectedAlertBehaviour=}] 
Session ID: 0815f4f9dcca9d364a7c15b4a50352e7 
*** Element info: {Using=xpath, value=//*[@id="ddlMunicipio"]} 

Error: Summary: NoSuchElement 
    Detail: An element could not be located on the page using the given search parameters. 
    class: org.openqa.selenium.NoSuchElementException 
    Further Details: run errorDetails method 

Ich werde mit Ihrer Hilfe dankbar.

+0

Es scheint ein Tippfehler in Ihrer URL zu sein. Vielleicht verursacht das Ihr Problem. Es gibt auch eine Methode 'selectTag', mit der Sie mit ausgewählten Tags interagieren können. – jdharrison

+0

jdharrison es war ein Fehler beim Kopieren meines Codes, in Originalschrift ist in Ordnung. Mein Problem ist nicht die Navigation, sondern die Suche nach Elementen. Ich werde es mit deiner verdauten Methode versuchen. – fcochaux

Antwort

0

Der Inhalt ist in einem Iframe. Sie müssen zuerst zum iframe wechseln:

library(RSelenium) 
rD<-rsDriver() 
remDr <- rD$client 
enlace<-'https://www.sisben.gov.co/atencion-al-ciudadano/Paginas/Directorio-administradores.aspx' 
remDr$navigate(enlace) 
# content is in iframe 
frames <- remDr$findElements("css", "iframe") 
# switch to first iframe 
remDr$switchToFrame(frames[[1]]) 
selectElem <- remDr$findElement("id", "ddlDepartamento") 
selectOpt <- selectElem$selectTag() 
> selectOpt$text 
[1] "AMAZONAS"   "ANTIOQUIA"   "ARAUCA"    "ATLANTICO"   
[5] "BOGOTÁ D.C."  "BOLIVAR"   "BOYACA"    "CALDAS"    
[9] "CAQUETA"   "CASANARE"   "CAUCA"    "CESAR"    
[13] "CHOCO"    "CORDOBA"   "CUNDINAMARCA"  "GUAINIA"   
[17] "GUAJIRA"   "GUAVIARE"   "HUILA"    "MAGDALENA"   
[21] "META"    "NARIÑO"    "NORTE DE SANTANDER" "PUTUMAYO"   
[25] "QUINDIO"   "RISARALDA"   "SAN ANDRES"   "SANTANDER"   
[29] "SUCRE"    "TOLIMA"    "VALLE"    "VAUPES"    
[33] "VICHADA" 

# click 2nd one 
selectOpt$elements[[2]]$clickElement() 

.... 
.... 
rm(rD) 
gc() 
Verwandte Themen