Я пытаюсь получить доступ ко 2-му или 3-му элементу флажка с тем же именем класса и тегом. Каждый из флажков заключен в отдельный элемент div, а элемент div также имеет то же имя класса. Ранее я искал на stackoverflow и Google и пробовал некоторые из следующих, но ни один из них не работает
driver.find_element_by_xpath("(//div)[@class='classname value'])[2]")
driver.find_element_by_xpath("(//div[@class='classname value']) [position()=2]")
Также
driver.find_element_by_xpath("(//span)[@class='classname value'])[2]")
driver.find_element_by_xpath("(//span[@class='classname value']) [position()=2]")
Это как-то элементы выглядят при проверке
<div class='a checkbox'>
<label><input type='checkbox'><span class='b'>Paid</span></label>
</div>
<div class='a checkbox'>
<label><input type='checkbox'><span class='b'>Free</span></label>
</div>
Я в основном хочу получить доступ к флажку с произвольным текстом .. Мой общий код - это
from selenium.webdriver.common.by import By
import time
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium import webdriver
driver=webdriver.Firefox()
driver.get("http://udemy.com/courses/search/?src=ukw&q=python&p=1")
WebDriverWait(driver,20).until(EC.element_to_be_clickable((By.XPATH,"//span[text()='All Filters']"))).click()
time.sleep(10)
WebDriverWait(driver,20).until(EC.element_to_be_clickable((By.XPATH,"//div[@class='modal-body']//label[.//span[@data-purpose='filter-option-title' and text()='Free']]/input[@type='checkbox']"))).click()