2017-01-12 3 views
-2

Der Link, auf den ich klicken möchte, wird überhaupt nicht erkannt. Entwickler-Tools in Chrom zeigen mir den Link wie in Struktur unter:Klicken auf einen Textlink - Selenium verwenden

<main 
    <div 
    <ifreame 
    #document 
     <html 
     <body 
      <form 
      <div 
       ::before 
        <a href=wizard_view.do? sys_action=sysverb_wizard_ans&WIZARD:action=follow&wiz_referring_url=&wiz_collection_key=&wiz_collectionID=&wiz_collection=&wiz_collection_related_field=&wiz_view=&wiz_action=sysverb_new&sys_id=ea7d96126f92a100f3ae60526e3ee4e0&sysparm_query=active=true&sysparm_target=&sys_target=change_ddfdff>Standard (from Template) 

</a> 
::after 
</div> 
    .... 

Wie kann ich erkennen und klicken Sie auf diesen bestimmten Text-Link habe ich versucht, CSS-Selektor, etc XPath aber habe nicht funktioniert

anchors = dd.findElements(By.linkText(Standard (from Template)));  

anchors2 =   dd.findElements(By.cssSelector(a[href*='ea7d96126f92a100f3ae60526e3ee4e0']))); 

Außerdem gibt es 10 Div-Abschnitte mit demselben Klassennamen, von denen jeder ein Textlink ist. Ich möchte auf sich klicken (siehe oben)

+0

das ist ungültig html? – Liam

+1

Sie haben iframe falsch geschrieben .. – Liam

+0

Nicht sicher, aber es sieht so aus, als ob Sie mit 'sys_action' anstelle von href versuchen möchten? In deinem zweiten Selektor !! Wie: a [sys_action * = 'ea7d96126f92a100f3ae60526e3ee4e0'] –

Antwort

3

Wenn Sie versuchen, für Elemente in einem Iframe suchen, haben Sie Schalen ersten

driver.SwitchTo().Frame(driver.FindElement(By.Id("_the_frame_id"))) 
+1

Sie haben eine schließende Klammer verpasst – Andersson

+0

Auch Sie müssen möglicherweise Code für den Fall hinzufügen, wenn es keine gibt 'id' /' name' wird auf 'iframe' gesetzt (ganz normaler Fall) – Andersson

+1

Nachdem die Groß-/Kleinschreibung von Frame zu Frame geändert wurde und Switch zu FindElement und findElement zu findElement in Ihrer Codezeile wechselte, funktionierte es perfekt. Danke vielmals. –

0

in diesem Rahmen zu wechseln, um mein Problem gelöst rahmen. Aber auf der nächsten Seite habe ich auch die selbe Frage (ID/Name) und ich bin nicht in der Lage, eine Eingabetextbox zu identifizieren, obwohl ich bereits auf den Frame umgeschaltet habe.

enter image description here

Ich erhalte ‚NoSuchElementException‘, wenn:

driver.switchTo().frame(driver.findElement(By.id("gsft_main"))); 
     WebElement stdFromTemplate = driver.findElement(By.linkText("Standard (from Template)")); 

stdFromTemplate.click(); 
WebElement stTemplate = driver.findElement(By.id("cced8819db987e08dee9f7b31d961989_text")); 

Diese letzte Zeile (die jetzt eine neue Seite ist nach dem Klick auf dem Link, dass ich in der ersten Frage zu erwähnen) Linie geben Ich 'NoSuchElementFoundException'

Verwandte Themen