Selenium Befehl By hat kein Attribut?

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet

Generell benötigst du einen Import, um By nutzen zu können

from selenium.webdriver.common.by import By

und es werden nur bestimmte Attribute unterstützt.

  • CLASS_NAME
  • CSS_SELECTOR
  • ID
  • LINK_TEXT
  • NAME
  • PARTIAL_LINK_TEXT
  • TAG_NAME
  • XPATH

Das kannst du soweit auch in der Dokumentation nachschlagen.

Für den Fall, dass du ein Element mit einem bestimmten Attribut suchen möchtest, könntest du einen CSS-Selektor oder einen XPath definieren.

Beispiel:

<!doctype html>
<title>Example</title>
<body>
  <div data-value="some value"></div>
</body>

Suche via CSS-Selektor:

driver.find_element(By.CSS_SELECTOR, "[data-value]")

oder mitsamt Wert:

driver.find_element(By.CSS_SELECTOR, "[data-value='some-value']")

Suche via XPath:

driver.find_element(By.XPATH. "//div[@data-value]")