我想使用硒選擇此復(fù)選框<input type="checkbox" name="rg" onchange="onCheckReg(this)" id="beauty_perfume_screening__c" value="beauty_perfume_screening__c" tabindex="-1" aria-labelledby="check-button-Beauty Perfume Screening check-group-header">我嘗試通過 xpath 和 id 查找,但總是出現(xiàn)錯誤無法定位元素wd.find_element_by_id("beauty_perfume_screening__c").click()有任何想法嗎?
2 回答

手掌心
TA貢獻(xiàn)1942條經(jīng)驗 獲得超3個贊
使用xpath
driver.find_element_by_xpath("//input[@name='rg']").click()
建議使用其中一種等待方法 -
WebDriverWait(driver, 10).until( EC.presence_of_element_located(By.XPATH, "//input[@name='rg']")
用于選擇 iframe -
root1 = driver.find_element_by_xpath("//iframe") driver.switch_to.frame(root1)

繁花不似錦
TA貢獻(xiàn)1851條經(jīng)驗 獲得超4個贊
要單擊帶有保存文本的元素,您可以使用以下定位器策略之一:
使用
id
:wd.find_element_by_id("beauty_perfume_screening__c").click()
使用
css_selector
:wd.find_element_by_css_selector("input#beauty_perfume_screening__c[name='rg'][value='beauty_perfume_screening__c']").click()
使用
xpath
:wd.find_element_by_xpath("http://input[@id='beauty_perfume_screening__c'?and?@name='rg'][@value='beauty_perfume_screening__c']").click()
理想情況下,要單擊需要引發(fā)WebDriverWait 的元素element_to_be_clickable()
,您可以使用以下任一定位器策略:
使用
ID
:WebDriverWait(wd,?20).until(EC.element_to_be_clickable((By.ID,?"beauty_perfume_screening__c"))).click()
使用
CSS_SELECTOR
:WebDriverWait(wd,?20).until(EC.element_to_be_clickable((By.CSS_SELECTOR,?"input#beauty_perfume_screening__c[name='rg'][value='beauty_perfume_screening__c']"))).click()
使用
XPATH
:WebDriverWait(wd,?20).until(EC.element_to_be_clickable((By.XPATH,?"http://input[@id='beauty_perfume_screening__c'?and?@name='rg'][@value='beauty_perfume_screening__c']"))).click()
注意:您必須添加以下導(dǎo)入:
from?selenium.webdriver.support.ui?import?WebDriverWaitfrom?selenium.webdriver.common.by?import?Byfrom?selenium.webdriver.support?import?expected_conditions?as?EC
重要提示:如果該元素位于 a 內(nèi),
<iframe>
則必須切換到<iframe>
第一個元素。您可以在以下位置找到一些相關(guān)討論:
iframe下處理#document的方法
通過 Selenium 和 python 切換到 iframe
添加回答
舉報
0/150
提交
取消