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 😃
Welche Programmiersprache soll das Ziel sein?
FindElement
gibt es weder in JavaScript noch in C#
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Das ist kein CSS Selector, ganz einfach 😉
ImageTools for Silverlight: http://imagetools.codeplex.com | http://www.silverdiagram.net | http://www.cleancodedeveloper.de b:::
Entweder
By.CssSelector(".listitem_new")
By.ClassName("listitem_new")
ImageTools for Silverlight: http://imagetools.codeplex.com | http://www.silverdiagram.net | http://www.cleancodedeveloper.de b:::
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.
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.
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.....
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
@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!