Python - 用selenium 模拟访问网页

本文详细介绍如何使用Selenium进行自动化测试,包括安装selenium库、配置chromedriver与Chrome浏览器版本一致,以及通过Python脚本模拟打开百度首页的操作。

1.安装selenium

pip install selenium

2.安装chromedriver

chromedriver的版本一定要和本机安装的chrome版本一致,否则无法使用

下载对应的chromedriver后,复制chromedriver.exe至python的script目录

3.开始模拟

from selenium import webdriver
driver = webdriver.Chrome()
driver.get("http://www.baidu.com")

大功告成!!!

### Python Selenium 解决元素不可点击问题 当遇到 `ElementNotVisibleException` 错误时,这通常意味着虽然找到了目标元素,但它当前处于不可见状态或被其他元素遮挡。为了处理这种情况,有几种策略可以尝试。 #### 使用 JavaScript 执行器强制点击 如果常规的 `.click()` 方法不起作用,则可以通过执行 JavaScript 来模拟点击操作: ```python element = driver.find_element_by_css_selector("your css selector here") driver.execute_script("arguments[0].click();", element) ``` 这种方法绕过了标准交互流程,直接触发 DOM 事件[^1]。 #### 确认元素可见性和可点击性 确保所选中的元素确实已经加载完成并变得可见。有时页面上的某些部分可能还没有完全渲染完毕就进行了查找和点击动作。此时应该加入显式等待条件直到满足特定属性为止: ```python from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By wait = WebDriverWait(driver, 10) visible_and_clickable_elem = wait.until( EC.element_to_be_clickable((By.CSS_SELECTOR, "your css selector")) ) visible_and_clickable_elem.click() ``` 这段代码会一直等到指定的选择器对应的元素既可见又可点击之后再继续执行下一步操作[^2]。 #### 处理 iframe 或者复杂布局下的元素访问 对于嵌套在 `<iframe>` 中或者其他特殊结构里的组件来说,需要先切换上下文才能正常与其互动。比如,在处理表单或其他类型的内联框架内的控件之前,应当调用 `switch_to.frame()` 函数来改变焦点位置: ```python # 切换至名为 'myFrame' 的 frame/iframe 内部 driver.switch_to.frame('myFrame') # 进行必要的操作... # 返回默认内容区域 (即整个网页主体) driver.switch_to.default_content() ``` 另外也要注意检查是否存在多个相同 ID 或类名的情况,因为这样可能会导致意外匹配到错误的对象实例[^3]。 #### 调整窗口大小适应显示全部元素 有时候由于屏幕分辨率不够大等原因造成部分内容未能充分展现出来而难以触及。这时调整浏览器尺寸有助于解决问题: ```python driver.set_window_size(width=1920, height=1080) # 设置固定宽高值 # 或者最大化窗口以充分利用可用空间 driver.maximize_window() ``` 通过上述手段往往能够有效改善大多数情况下发生的 “找不到” 或者 “点不到”的状况[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ssson

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值