iframe定位、下拉框定位、获取cookie

iframe

就是一个页面里嵌套了另外一个页面
iframe标签也叫浮动框架标签,iframe标签也是一个比较特殊的框架,可以放在浏览器中的小窗口,可以出现在页面的任何一个位置上,但是整个页面并一定在框架页面上,iframe框架完全是由开发者去定义高度和宽度,在网页中嵌套另外一个网页。

<iframe src="源文件" width="浮动宽" height="浮动高">
……
</iframe>

在这里插入图片描述
这种情况如何去定位?
在外面能看到但是定位不到,要先切入到iframe里,然后再iframe里面去定位
只是查找范围上的变化
切入iframe后正常定位即可

# 在iframe里定位元素
from selenium import webdriver
from time import sleep
driver = webdriver.Chrome()
driver.get("http://shop.pro.17lebo.com/")
sleep(1)

# 点击个人中心 (未登录提示先登录,这个是弹出的登录框而不是在当前页面点击登录)
driver.find_element("xpath", "//span[text()='个人中心']").click()
# 切换到iframe
# 先找到iframe的链接  "http://shop.pro.17lebo.com/?s=user/modallogininfo.html",然后再切换
driver.switch_to.frame(driver.find_element("xpath", "//iframe[contains(@src,'modallogininfo')]"))
# 切换到iframe再定位 就能找到了
sleep(1)
# 定位到并输入用户名和密码
driver.find_element("name", "accounts").send_keys("lebo19_001")
driver.find_element("name", "pwd").send_keys("lebo19.001")
# 定位到并点击登录
driver.find_element("xpath", "//button[text()='登录']").click()
sleep(5)

# 退出浏览器卸载最后
driver.quit()

既然能切到iframe,那就要能切回去

driver.switch_to.parent_frame()

下拉框

一般与地址相关的都是下拉框
省份地市的下拉框是原来就在那的,只是不可见,而不是点击之后弹出来的。
那下拉框要怎么定位?

from selenium.webdriver.support.select import Select

# 进入我的地址
driver.get("http://shop.pro.17lebo.com/?s=useraddress/index.html")
# 点击新增地址
driver.find_element("xpath", "//button[@data-popup-title='新增地址']").click()
sleep(5)
# 新增地址的页面也是一个iframe,所以要切换到iframe
driver.switch_to.frame(driver.find_element("xpath", "//iframe[contains(@src,'s=useraddress/saveinfo.html')]"))
# 省份地市的下拉框是原来就在那的,只是不可见,而不是点击之后弹出来的。所以要设置显示属性为可见状态
# 修改显示属性
js = "document.querySelectorAll('select')[0].style.display='block';"
driver.execute_script(js)
province = driver.find_element("name", "province")
# 选择下拉框中的省份
Select(province).select_by_index(4)
sleep(2)
js = "document.querySelectorAll('select')[1].style.display='block';"
driver.execute_script(js)
city = driver.find_element("name", "city")
# Select(city).select_by_index(1)
Select(city).select_by_visible_text("太原市")
sleep(2)
js = "document.querySelectorAll('select')[2].style.display='block';"
driver.execute_script(js)
county = driver.find_element("name", "county")
# Select(county).select_by_index(4)
Select(county).select_by_visible_text("小店区")
sleep(2)

cookie

# 获取所有cookie
print(f"获取cookie的值:{driver.get_cookies()}")
# 获取个别cookie
print(f"获取cookie的值:{driver.get_cookie('domain')}")

# 添加cookie
driver.add_cookie({"name": "乐博学院", "value": "五年"})
# print(f"添加之后获取cookie的值:{driver.get_cookies()}")

# 删除所有cookie
driver.delete_all_cookies()
# 按名字删cookie
driver.delete_cookie("name")
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值