Python3操作没有id的radio选中
在Web开发中,我们常常需要用到radio单选框来让用户进行选择。但是有些情况下,页面上的radio没有id属性,这样会给我们的操作带来一些麻烦。这篇文章将为大家介绍如何通过Python3操作没有id的radio选中。
一、通过标签属性选中radio
如果页面上的radio没有id属性,我们可以通过标签属性来选中它。比如,我们假设页面上有两个radio,它们的标签分别是和,它们的值分别是1和2。那么我们可以通过如下代码来选中这两个radio:
from selenium import webdriver driver = webdriver.Chrome() # 选中第一个radio radio1 = driver.find_element_by_xpath("//label[@for='radio1']/input") radio1.click() # 选中第二个radio radio2 = driver.find_element_by_xpath("//label[@for='radio2']/input") radio2.click()
上面的代码中,我们首先通过XPath定位到标签,然后通过click()方法来选中它所对应的radio。其中,"//label[@for='radio1']/input"表示查找for属性为"radio1"的label标签下的input标签。
二、通过父子关系选中radio
有时候,我们有可能会碰到页面上的radio同时没有id属性和for属性,这时我们可以通过父子关系来选中它。比如,假设页面上有如下两个radio:
那么我们可以通过下面的代码来选中这两个radio:
from selenium import webdriver driver = webdriver.Chrome() # 选中男性 male_radio = driver.find_element_by_xpath("//label[text()='男']/preceding-sibling::input") male_radio.click() # 选中女性 female_radio = driver.find_element_by_xpath("//label[text()='女']/preceding-sibling::input") female_radio.click()
在上面的代码中,我们首先通过XPath定位到label标签,然后通过preceding-sibling::input找到与之对应的radio,最后通过click()方法来模拟点击操作。
三、通过CSS选择器选中radio
除了通过标签属性和父子关系来选中radio之外,我们还可以通过CSS选择器来选中radio。比如,假设页面中有如下两个radio:
那么我们可以通过如下代码来选中它们:
from selenium import webdriver driver = webdriver.Chrome() # 选中男性 male_radio = driver.find_element_by_css_selector(".custom-radio:nth-of-type(1) input[type='radio']") male_radio.click() # 选中女性 female_radio = driver.find_element_by_css_selector(".custom-radio:nth-of-type(2) input[type='radio']") female_radio.click()
上面的代码中,".custom-radio:nth-of-type(1) input[type='radio']"表示找到第一个类名为"custom-radio"的span标签内的input标签。
四、总结
本文通过三个方面来介绍了Python3操作没有id的radio选中的方法,分别是通过标签属性、父子关系和CSS选择器来选中。相信通过本文的介绍,大家已经掌握了选中这类radio的技巧。