有没有办法识别具有3个类的元素?

问题描述

在该元素具有3个类的情况下,我陷入了困境,我需要获取名为“ data-source”的属性值,并且应该获取该值。

有人可以帮我吗?

预先感谢

解决方法

要获取具有3个类的元素的属性data-source,例如您可以使用classAclassBclassC,也可以使用以下任一Locator Strategies

  • 使用 cssSelector

    System.out.println(driver.findElement(By.cssSelector(".classA.clasB.classC")).getAttribute("data-source"));
    
  • 使用 xpath

    print(driver.find_element_by_xpath("//*[@class='classA classB classC']").get_attribute("data-source"))
    

理想情况下,要单击element_to_be_clickable()的{​​{3}} WebDriver元素,您可以使用以下任一Wait

  • 使用Locator Strategies cssSelector

    System.out.println(new WebDriverWait(driver,20).until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector(".classA.clasB.classC"))).getAttribute("data-source"));
    
  • 使用 xpath

    print(WebDriverWait(driver,20).until(EC.visibility_of_element_located((By.XPATH,"//*[@class='classA classB classC']"))).get_attribute("data-source"))
    
  • 注意:对于 Python ,您必须添加以下导入:

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