实际上,我正在做http://demo.seleniumeasy.com/basic-radiobutton-demo.html-Group单选按钮演示中的任务。
可以在某个div中选择按钮吗?因为在我的代码中,由findelements()生成的列表的长度是7,但我希望它是5(应该只选择Group单选按钮中的按钮)。
我知道div对于所有按钮都是相同的,但有没有其他(更好的)选择器可以在这里使用?
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
import time
PATH = r"C:/Users/*****/PycharmProjects/chromedriver.exe"
s = Service(PATH)
driver = webdriver.Chrome(service=s)
driver.get("http://demo.seleniumeasy.com/basic-radiobutton-demo.html")
# Single Radio Button Demo
button_radio_male = driver.find_element(by=By.XPATH,
value="//label[normalize-space()='Male']//input[@name='optradio']")
button_radio_male.click()
button_get_checked_value = driver.find_element(by=By.ID, value="buttoncheck")
button_get_checked_value.click()
# Multiple Radio Button Demo
buttons = driver.find_elements(by=By.XPATH, value="//div[@class='panel-body']//input[@type='radio']")
print(len(buttons))
2条答案
按热度按时间brccelvz1#
你当然可以。
您可以使用更精确的定位器来代替
"//div[@class='panel-body']//input[@type='radio']"
XPath定位器实际上,它甚至可以缩写为:
在上面的表达式中,我们通过它的类名和子元素的文本内容来定义精确的父
div
元素。uajslkp62#
您还可以在XPath中使用
OR
来仅定位这5个元素。下面是Group Radio Buttons Demo
中这些单选按钮的XPath。