selenium 复杂元素定位

第一种:鼠标悬浮才出现元素

刚开始运行报错:元素怎么都定位不到,检查了代码没发现问题,就去看网页源代码,发现了iframe标签,利用switch_to.frame()方法跳入frame,然后再进行定位

完整代码如下:

复制代码

from selenium.webdriver import ActionChains

......

# 8.添加新地址
driver.find_element_by_css_selector(".ftx-05.J_consignee_global").click()
# 9.输入收货人信息
# 切换到iframe
driver.switch_to.frame("dialogIframe")
# 选择所在地区
above = driver.find_element_by_css_selector(".ui-area-wrap.fl.ui-area-oversea-mode")
# 鼠标悬浮定位
ActionChains(driver).move_to_element(above).perform()
driver.find_element_by_link_text("广东").click()
driver.find_element_by_link_text("佛山市").click()
driver.find_element_by_link_text("南海区").click()
driver.find_element_by_link_text("桂城街道").click()

复制代码

 

第二种:下拉框元素定位操作

复制代码

from selenium.webdriver.support.select import Select

# 选择所在地区——省
sheng = driver.find_elements_by_class_name("add-new-area-select")[0]
# 把找到的下拉框强制转换成下拉框Select类型,通过可见文本"山西省"去选择
Select(sheng).select_by_visible_text("山西省")
# 选择收货地区——市
shi = driver.find_elements_by_class_name("add-new-area-select")[1]
Select(shi).select_by_visible_text("大同市")
# 选择地区
qu = driver.find_elements_by_tag_name("select")[2]
Select(qu).select_by_visible_text("市辖区")

复制代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值