我正在尝试使用 xpath 选择并单击三个单选按钮之一,但运气不佳。有代码建议吗?

问题描述 投票:0回答:1

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')]")))

既不工作也不超时

python selenium-webdriver
1个回答
0
投票

第一个 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"]'
© www.soinside.com 2019 - 2024. All rights reserved.