Я писал веб-скребок на python, используя селен на странице формы Google, но я хочу иметь возможность выбрать конкретную кнопку, которую я хочу. Я устал выбирать все кнопки один раз, поэтому в итоге выбрал последнюю, как и ожидалось. Перебор числа, кратного числу, также невозможно, поскольку каждая из них содержит разное количество кнопок.
Итак, мне нужен способ получить количество переключателей в группе и способ выбрать нужную.
Тестовый сайт
Если есть другие предложения, я буду рад их выслушать?
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
import Resources
from selenium.webdriver.support.select import Select
driver = webdriver.Chrome(executable_path= Resources.driverChrome)
driver.maximize_window()
driver.get(Resources.linkTest)
time.sleep(3)
try:
email = driver.find_element_by_xpath("//input[@type='email']")
if email.is_displayed() & email.is_enabled():
email.send_keys(Resources.emailTest)
except:
print("Email box was not found")
containers = driver.find_elements_by_xpath("//div[@class ='freebirdFormviewerViewNumberedItemContainer']")
sNoBoxes = driver.find_elements_by_xpath("//input[@type='text' ] ")
time.sleep(2)
radios = driver.find_elements_by_xpath("//div[@class='appsMaterialWizToggleRadiogroupOffRadio exportOuterCircle']")
for radio in radios:
radio.click()
for container in containers:
sNo = int(containers.index(container))
print("\n\n" + str(sNo) + " " + container.text)
button = driver.find_element_by_xpath("//span[contains(text(),'Submit')]")
button.click()
time.sleep(3)
try:
viewScore = driver.find_element_by_xpath("//span[contains(text(),'View score')]").click()
except:
pass