在做用Python+Selenium做自动化的时候,碰到这种比较异类的选择框对于新手来说太难定位了,首页显示出来的那几个可以直接定位,但是后面的你滑动它才显示出来,不然就是被隐藏的,所以无法直接定位。
我用了个笨办法就是,用try/except,虽然定位失败,但是脚本只是打印一个东西,还是继续往下走,然后你需要定位的元素就从隐藏状态变成显示状态了,这时候就能定位成功了。注意:但是用一次还不行,必须用两次才能定位成功,不知道咋回事,反正就是多一点代码,复制粘贴就可以了。
附上代码
driver.find_element(By.XPATH,'.//*[@placeholder="请选择所属区域"]').click()
# 两次尝试点击最后一个行政区域,让最终需要的行政区域显示出来,使之成为可点击元素。
try:
# 点一下最后一个,让网页加载所有list显示出来
driver.find_element(By.XPATH,'//span[contains(.,"三都水族自治县")]/preceding-sibling::*').click()
except:
print('-----------------------无用的分割线-----------------------')
try:
# 点一下最后一个,让网页加载所有list显示出来
driver.find_element(By.XPATH,'//span[contains(.,"三都水族自治县")]/preceding-sibling::*').click()
except:
print('-----------------------无用的分割线-----------------------')
# 点击区域
driver.find_element(By.XPATH, '//span[contains(.,"惠水县")]/preceding-sibling::*').click()