javascript获取滚动条-Python如何使用Selenium手动控制浏览器?

2024-04-27 0 4,711 百度已收录

点击菜单栏上的“粉丝福利

带上小度,用手机兑换吧!

文|极光

javascript获取滚动条-Python如何使用Selenium手动控制浏览器?

来源:Python技术《ID:pythonall》

正如前面提到的,还有其他方法可以找到搜索框吗? 答案其实是有的。 为了满足大多数场景javascript获取滚动条元素定位方式有很多种。 明天我会继续和大家学习如何在Python中使用Selenium来手动控制浏览器

定位元素

如果要操作网页中的某个元素,无论是点击、输入、拖放等,第一步都是定义该元素。 由于每个元素对象包含多个属性,我们可以通过其中的一个或几个属性轻松找到它。

以下是一些常见的元素定位方法:

定位方式非常多,基本可以满足大部分场景的需求。 还有一些其他的方法,这里就不说了。

我将在下面列出这种定位的示例,以便您了解如何使用它:

// 导入 webdriver
from selenium import webdriver

// executable_path 用于指定driver存放路径
browser = webdriver.Chrome(executable_path='/Users/xx/python/chromedriver')
// 打开百度页面
browser.get('https://wwww.baidu.com/')
// 在搜索框内输入 `python selenium` 并点搜索返回结果
browser.find_element_by_id("kw").send_keys("python selenium")
// name 属性定位
browser.find_element_by_name("wd").send_keys("python selenium")
// class name 属性定位
browser.find_element_by_class_name("s_ipt").send_keys("python selenium")
// 链接 text 属性定位
browser.find_element_by_link_text("关于百度").click()
// tag name 属性定位
browser.find_element_by_tag_name("input").send_keys("python selenium")
// CSS 方式定位
browser.find_element_by_css_selector("#kw").send_keys("python selenium")
// xpath 方式定位
browser.find_element_by_xpath("//input[@id='kw']").send_keys("python selenium")
// 点击 百度一下 按钮
browser.find_element_by_id("su").click()

元素已经定位了,接下来看如何操作元素对象。

javascript获取滚动条-Python如何使用Selenium手动控制浏览器?

操作元件

前面我们讨论了如何定位和发现元素。 定位并找到元素后,我们可以对其进行哪些操作呢? 下面我来一一解释

操作示例

好了,介绍了这么多,现在我们来看一个实际例子

浏览器手动输入,打开易迅官网,然后搜索PS5国行,复制搜索到的产品名称金额

反例并不复杂,我们直接看代码

# 导入库
from selenium import webdriver
import time

# executable_path 用于指定driver存放路径
browser = webdriver.Chrome(executable_path='/Users/xx/python/chromedriver')
# 打开京东官网
browser.get('https://www.jd.com/')

# browser.find_element_by_id("kw").send_keys("python selenium")

# 获取输入框对象
search = browser.find_element_by_xpath('//*[@id="key"]')

# 输入想要搜索的关键词,如"ps5国行"
search.send_keys('ps5国行')

# 获取搜索按钮对象并单击
browser.find_element_by_xpath('//*[@id="search"]/div/div[2]/button').click()

# 将滚动移动到页面底部,用于加载所有信息
javascript = "var q=document.documentElement.scrollTop=50000"
执行 javascript 移动滚动条
browser.execute_script(javascript)
# 等待3秒,有些异步加载的数据加载慢
time.sleep(3)

# 通过查看页面源码得到金额的 xpath 路径,并获取金额 
prices = browser.find_elements_by_xpath('//*[@id="J_goodsList"]/ul/li/div/div[2]/strong/i')
# 通过查看页面源码得到商品标题的 xpath 路径,并获取商品标题
names = browser.find_elements_by_xpath('//*[@id="J_goodsList"]/ul/li/div/div[3]/a/em')

遍历打印当前页所有标题和金额
for name,price in zip(names,prices):
    print(name.text.replace('n',''),price.text)

#退出浏览器
browser.quit()

我已经对代码中的每一行进行了注释,以便您可以理解每一行的作用。 接下来我们直接运行代码pythontest.py。 可以看到,手动启动浏览器后,执行了相关操作,然后退出。 下面是执行截图

执行完成后我们可以看到控制台已经复制了相应的信息:

javascript获取滚动条-Python如何使用Selenium手动控制浏览器?

总结

好吧,明天我们会介绍selenium定位元素的各种方式javascript获取滚动条,以及找到元素后我们可以对元素进行哪些操作。 我还写了一个简单的手动操作的反例供大家参考。 稍后我会向大家介绍更多。 好吧,我们明天再谈这个。 喜欢的话记得点击观看

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 javascript javascript获取滚动条-Python如何使用Selenium手动控制浏览器? https://www.wkzy.net/game/201309.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务