Hallo,
wie kann ich mit der driver.find_element_by_... funktion nach, aus dem Quelltext <input type="checkbox", suchen und diese anklicken?
Danke <3
Python Selenium find_element_by
@nino_,
Zum finden von Elementen gibt es eine ganze Reihe von Funktionen.
https://selenium-python.readthedocs.io/ ... ments.html
Da du hier nur den "input" Tag hast, würde wahrscheinlich
'find_element_by_tag_name' oder 'find_elements_by_tag_name'
geeignet sein.
Einmal bekommst du das erste "input" element und einmal bekommst du eine Lister aller "input" elemente.
Es währe besser wenn du noch eine "id" oder "class" oder "name" hättest um das gewünschte Element zu identifizieren.
Zum finden von Elementen gibt es eine ganze Reihe von Funktionen.
https://selenium-python.readthedocs.io/ ... ments.html
Da du hier nur den "input" Tag hast, würde wahrscheinlich
'find_element_by_tag_name' oder 'find_elements_by_tag_name'
geeignet sein.
Einmal bekommst du das erste "input" element und einmal bekommst du eine Lister aller "input" elemente.
Es währe besser wenn du noch eine "id" oder "class" oder "name" hättest um das gewünschte Element zu identifizieren.
- __blackjack__
- User
- Beiträge: 13006
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
Oder erst ein übergeordnetes Element mit einem solchen Attribut und von da aus dann weitersuchen.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Danke für die Antworten,
von dem Element habe ich folgendes:
<input type="checkbox" value="43060387" class="vehicle_checkbox" id="vehicle_checkbox_43060387" name="vehicle_ids[]"
Es bleibt jedoch nur type, class, und name gleich.
Value und id verändern sich jedesmal.
Und über den Xpath kommt auch immer nur "no such element: Unable to locate element" ...
Was könnte ich stattdessen schreiben?
von dem Element habe ich folgendes:
<input type="checkbox" value="43060387" class="vehicle_checkbox" id="vehicle_checkbox_43060387" name="vehicle_ids[]"
Es bleibt jedoch nur type, class, und name gleich.
Value und id verändern sich jedesmal.
Und über den Xpath kommt auch immer nur "no such element: Unable to locate element" ...
Was könnte ich stattdessen schreiben?
@nino_,
über xpath könnte so etwas funktionieren:
Also wenn man davon ausgeht, dass zumindest "vehicle_checkbox_" immer vorkommt und sich nur die Zahlenkolonne ändert.
Ansonsten, wie von __blackjack__ vorgeschlagen, auf das übergeordnete element, gehen. Das dürfte ein (hoffentlich eindeutiges) "form" oder "div" sein. Dann über die darunterliegenden "inputs" iterieren.
über xpath könnte so etwas funktionieren:
Code: Alles auswählen
driver.find_element_by_xpath("//input[contains(@id, 'vehicle_checkbox_')]")
Ansonsten, wie von __blackjack__ vorgeschlagen, auf das übergeordnete element, gehen. Das dürfte ein (hoffentlich eindeutiges) "form" oder "div" sein. Dann über die darunterliegenden "inputs" iterieren.
Also hier das Bild: [https://postimg.cc/CzWFKD53]
Ziel ist es das Selenium die Checkbox, also die drei grau-hinterlegten Zeilen erkennt, und anklickt...
Danke für euere Hilfe, so leicht wie es auf den ersten Blick vielleicht erscheint ist es nicht
Ziel ist es das Selenium die Checkbox, also die drei grau-hinterlegten Zeilen erkennt, und anklickt...
Danke für euere Hilfe, so leicht wie es auf den ersten Blick vielleicht erscheint ist es nicht
Mehrere dinge, hab nur die zwei hier gespeichert.. Funktionieren jedoch nicht
driver.find_element_by_xpath("/html/body/div[1]/div[4]/div[2]/form[2]/div[4]/div/div[8]/table/tbody/tr[1]/td[1]").click()
driver.find_element_by_xpath("//input[contains(@id, 'vehicle_checkbox_')]").click()
Oben findest du den Link zum Screenshot, wenn du mir helfen möchtest
driver.find_element_by_xpath("/html/body/div[1]/div[4]/div[2]/form[2]/div[4]/div/div[8]/table/tbody/tr[1]/td[1]").click()
driver.find_element_by_xpath("//input[contains(@id, 'vehicle_checkbox_')]").click()
Oben findest du den Link zum Screenshot, wenn du mir helfen möchtest
Im Terminal gibt er mir das hier aus:
...
Traceback (most recent call last):
File "c:\Users\Nino\OneDrive\Desktop\MyVSCode\main.py", line 62, in <module>
SchnellstesEinsatzmittel = driver.find_element_by_xpath("//input[contains(@id, 'vehicle_checkbox_')]").click()
File "D:\Python\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 394, in find_element_by_xpath
return self.find_element(by=By.XPATH, value=xpath)
File "D:\Python\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 976, in find_element
return self.execute(Command.FIND_ELEMENT, {
File "D:\Python\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "D:\Python\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//input[contains(@id, 'vehicle_checkbox_')]"}
(Session info: chrome=92.0.4515.131)
...
Traceback (most recent call last):
File "c:\Users\Nino\OneDrive\Desktop\MyVSCode\main.py", line 62, in <module>
SchnellstesEinsatzmittel = driver.find_element_by_xpath("//input[contains(@id, 'vehicle_checkbox_')]").click()
File "D:\Python\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 394, in find_element_by_xpath
return self.find_element(by=By.XPATH, value=xpath)
File "D:\Python\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 976, in find_element
return self.execute(Command.FIND_ELEMENT, {
File "D:\Python\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "D:\Python\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//input[contains(@id, 'vehicle_checkbox_')]"}
(Session info: chrome=92.0.4515.131)