我们在 Selenium Java 中有 @FindBys 和 @FindAll,如何使用相同的代码在 Python 中查找定位器

We have @FindBys and @FindAll in Selenium Java, how to use same code to find locators in Python

我们在 Selenium Java 中有 @FindBys 和 @FindAll,如何使用相同的代码在 Python 中查找定位器?

@FindBys( { @FindBy(className = "class1") @FindBy(className = "class2")} )

请指导我。

你有多种方式:

  • 使用 lambdaCLASS_NAME:

    WebDriverWait(driver,20).until(lambda driver: driver.find_element(By.CLASS_NAME, "class1") or driver.find_element(By.CLASS_NAME, "class2"))
    
  • 使用CSS_SELECTOR:

    WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.CSS_SELECTOR, ".class1, .class2"))
    
  • 注意:您必须添加以下导入:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    

参考资料

您可以在以下位置找到一些相关的详细讨论: