HTML:
<input class="PrivateSwitchBase-input css-1m9pwf3" type="radio" data-testid="person-select-radio-1" aria-label="1 person" value="" checked="" name="mui-48">
<input class="PrivateSwitchBase-input css-1m9pwf3" type="radio" data-testid="person-select-radio-2" aria-label="2 person" value="" checked="" name="mui-48">
<input class="PrivateSwitchBase-input css-1m9pwf3" type="radio" data-testid="person-select-radio-3" aria-label="3 person" value="" checked="" name="mui-48">
<input class="PrivateSwitchBase-input css-1m9pwf3" type="radio" data-testid="person-select-radio-4" aria-label="4 person" value="" checked="" name="mui-48">
代码:
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH,"//*input[@id='person-select-radio-4']")))
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH,"//*[contains(text(),'person-select-radio-4')]")))
既不工作也不超时
第一个 XPATH 不起作用,因为它们没有
id
。
第二个 XPATH 不起作用,因为
'person-select-radio-4'
不在 <input...>text</input>
中的文本中
你必须使用
data-testid
'//input[@data-testid="person-select-radio-4"]'
或
aria-label
'//input[@aria-label="4 person"]'