Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
driver.FindElement div Class Aufruf?? (Selenium WebDirver)
CarnifeX
myCSharp.de - Member



Dabei seit:
Beiträge: 48

Themenstarter:

driver.FindElement div Class Aufruf?? (Selenium WebDirver)

beantworten | zitieren | melden

Hallo Zusammen,

ich schreibe gerade ein Screenshotprogram das automatisch auf eine Webseite geht, zu einem bestimmten Punkt navigiert und dann einen Screenshot generiert.

Mein Problem:
Das "navigieren zu diesem Punkt".
Also das aufrufen der Classe via "driver.FindElement".

Der Quellcode der Seite:
<div class="divObject  listitem_new_wrap" estateid="38633370">
            <div class="listitem_new ">
                <a href="/expose/26TWZ4U"><span></span></a>
                <div class="listimage">
                    <span class="color_new"></span>
                    
                    <span class="imagecount"><i class="icon_camera"></i>10</span></div>


Diesen Bereich möchte ich mit driver.FindElement anspringen. Aber ich weiß nicht wie (also die Syntax) Ich habe schon einiges außprobiert. z.B.:
driver.FindElement(By.CssSelector("listitem_new")).Click();

Kann mir jemand weiterhelfen?

Danke im Voraus :)
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von CarnifeX am .
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16098

beantworten | zitieren | melden

Welche Programmiersprache soll das Ziel sein?
FindElement gibt es weder in JavaScript noch in C#
- performance is a feature -

Microsoft MVP - @Website - @blog - @AzureStuttgart - github.com/BenjaminAbt
private Nachricht | Beiträge des Benutzers
CarnifeX
myCSharp.de - Member



Dabei seit:
Beiträge: 48

Themenstarter:

beantworten | zitieren | melden

In C#
In verbindung mit dem Selenium Webdriver gibt es FindElement.
private Nachricht | Beiträge des Benutzers
malignate
myCSharp.de - Member

Avatar #avatar-3206.png


Dabei seit:
Beiträge: 751

beantworten | zitieren | melden

Das ist kein CSS Selector, ganz einfach ;)

http://wiki.selfhtml.org/wiki/CSS/Selektoren
private Nachricht | Beiträge des Benutzers
CarnifeX
myCSharp.de - Member



Dabei seit:
Beiträge: 48

Themenstarter:

beantworten | zitieren | melden

@malignate Wie rufe ich es dann auf?
private Nachricht | Beiträge des Benutzers
malignate
myCSharp.de - Member

Avatar #avatar-3206.png


Dabei seit:
Beiträge: 751

beantworten | zitieren | melden

Entweder

By.CssSelector(".listitem_new")

- oder -

By.ClassName("listitem_new")
private Nachricht | Beiträge des Benutzers
CarnifeX
myCSharp.de - Member



Dabei seit:
Beiträge: 48

Themenstarter:

beantworten | zitieren | melden

Danke schon mal für die Antwort.
Ich bekomme schon mal keine Fehlermeldung mehr. Dennoch wird nicht zu der seite navigiert.

driver.FindElement(By.CssSelector(".listitem_new")).Click();

Mir kommt es so vor als würde der Code noch ignoriert werden. Oder als würde er das Element zwar finden aber nicht anspringen.
private Nachricht | Beiträge des Benutzers
LiMuBai
myCSharp.de - Member



Dabei seit:
Beiträge: 13

beantworten | zitieren | melden

Ich habe jetzt keine Ahnung wie er nach dem CssSelector sucht, aber in deinem Beispielcode oben hast du ein Leerzeichen nach dem Klassennamen. Vielleicht liegt es einfach nur daran.
private Nachricht | Beiträge des Benutzers
CarnifeX
myCSharp.de - Member



Dabei seit:
Beiträge: 48

Themenstarter:

beantworten | zitieren | melden

Danke für den Tipp, aber daran liegt es leider auch nicht.
Bei vorherigen Element-Aufrufen hat alles wunderbar funktioniert:

driver.FindElement(By.Name("ctl00$MainContent$dts$txtType")).SendKeys("Wohnung mieten");
                driver.FindElement(By.Name("ctl00$MainContent$dts$txtLocation$txtLocation")).SendKeys("90411" + Keys.Enter);

Doch bei dem jetztigen Aufruf des Div-Containers / Css klappt es irgendwie nicht.
Ich habe schon etliche Variationen des Codes ausprobiert, aber keiner funktioniert.
driver.FindElement(By.ClassName("listitem_new")).SendKeys(Keys.Enter);
driver.FindElement(By.ClassName("listitem_new")).Click();
driver.FindElement(By.Name("listitem_new")).Click();
driver.FindElement(By.CssSelector(".listitem_new")).Click(); 

usw.....
private Nachricht | Beiträge des Benutzers
MarsStein
myCSharp.de - Experte

Avatar #avatar-3191.gif


Dabei seit:
Beiträge: 3430
Herkunft: Trier -> München

beantworten | zitieren | melden

Hallo,

wenn's nicht funktioniert, vermute ich, dass Du einfach versuchst auf das falsche Element zu "clicken".
Sicher dass <div class="listitem_new "> der richtige Kandidat ist?

Gruß, MarsStein
Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca
private Nachricht | Beiträge des Benutzers
CarnifeX
myCSharp.de - Member



Dabei seit:
Beiträge: 48

Themenstarter:

beantworten | zitieren | melden

@MarsStein danke!
Ich bin alles nochmal durchgegangen und mir ist aufgefallen dass das
 <a href="/expose/26TWZ4U"><span></span></a> 

aufgerufen werden muss. Dies funtkioniert mit:

driver.FindElement(By.CssSelector("a[href*='expose']")).Click();  

-> Gelöst!
private Nachricht | Beiträge des Benutzers