selenium之鼠标悬停/警告框处理/多窗口切换/下拉菜单/浏览器滚动条的处理介绍...

本文详细介绍了使用Selenium进行高级操作的方法,包括鼠标悬停、处理警告框、操作下拉菜单、多窗口切换及调用JavaScript滚动页面等,为自动化测试提供实用技巧。

一.鼠标悬停

代码里要引入ActionChains包,代码如下:

from selenium.webdriver.commom.action_chains import ActionChains

a.ActionChains----悬停类

b.move_to_element()----移动鼠标

c.perform()----让悬停生效

例子:

from selenium import webdriver

from time import sleep

from selenium.webdriver.common.action_chains import ActionChains #引入ActionChains包

dr=webdriver.Chrome()

dr.get("https://www.baidu.com/")

ele=dr.find_element_by_link_text("设置")

ActionChains(dr).move_to_element(ele).perform() #让鼠标悬停在ele上

二.警告框的处理

1.警告框有三种表现形式

a.alert----只有一个确定按钮

b.confirm---有一个确定按钮和一个取消按钮

c.prompt----有一个确定按钮和一个取消按钮,还有一个文本框,需要用到web定位

2.以上三种形式的操作方法如下:

a.switch_to.alert.text----打印弹框的内容

b.switch_to.alert.accept()----接收点击确认

c.switch_to.alert.dismiss()----点击取消

d.switch_to.alert.sendkeys()----输入值,alert/confirm如果没有对话框就不能用了,否则会报错

例子:

from selenium import webdriver

from selenium.webdriver.common.action_chains import ActionChains

from time import sleep

dr=webdriver.Chrome()

dr.get("https://www.baidu.com/")

ele=dr.find_element_by_link_text("设置")

ActionChains(dr).move_to_element(ele).perform()

sleep(1)

dr.find_element_by_link_text("搜索设置").click()

sleep(1)

dr.find_element_by_link_text("保存设置").click()

sleep(1)

text1=dr.switch_to.alert.text #切换到警告框

print(text1)

dr.switch_to.alert.accept() #点击确定按钮

sleep(1)

dr.quit()

三.下拉菜单的处理方法

通过select 类实现的,首先要导包,代码如下:

from selenuim.webdriver.support.select import Select

1.根据索引位定位----select_by_index()

2.根据value值定位----select_by_value()

3.根据显示的文本值定位----select_by_visible_text()     

例子:

from selenium import webdriver

from selenium.webdriver.support.select import Select

dr=webdriver.Chrome()

dr.get("E:\培训\自动化测试学习\selenium\下拉菜单练习.html")

ele=dr.find_element_by_id("s4Id")

Select(ele).select_by_index(2) #根据索引位定位

Select(ele).select_by_value("o1val") #根据value值定位

Select(ele).select_by_visible_text("o3") #根据显示的文本值定位

 

四.多窗口切换

由默认窗口点击按钮页面跳转到其他窗口时,需要在定位脚本前写如下代码来告诉计算机要切换窗口。

switch_to.window(指定的窗口)----切换到指定窗口

window_handles----获取所有窗口 

例子:

from selenium import webdriver

from time import sleep

dr=webdriver.Chrome()

dr.get("https://www.so.com/")

sleep(1)

dr.find_element_by_link_text("360导航").click()

sleep(3)

dr.switch_to.window(dr.window_handles[1]) #切换到第二个窗口

五.  调用Javascript执行浏览器滚动条

0 一般是滚动条的顶部,调用javascript方法来执行滚动条---- .execute_script("window.scrollTo();")

例子:

from selenium import webdriver

from time import sleep

dr=webdriver.Chrome()

dr.get("https://www.taobao.com/")

sleep(3)

dr.execute_script("window.scrollTo(0,3000);")  #滑动滚动条

sleep(2)

dr.execute_script("window.scrollTo(0,6000);") #滑动滚动条

sleep(2)

dr.execute_script("window.scrollTo(0,300);") #滑动滚动条

转载于:https://www.cnblogs.com/xyx-001/p/9519955.html

### 回答1: 好的,我可以帮你解决这个问题。 首先,你需要安装selenium和chromedriver。你可以通过以下命令安装selenium: ``` pip install selenium ``` 然后,你需要下载对应浏览器版本的chromedriver,并将其添加到系统环境变量中。 接下来,你可以使用以下代码爬取https://data.eastmoney.com/xg/xg/?mkt=kzz页面信息: ```python from selenium import webdriver # 创建Chrome浏览器对象 chrome_options = webdriver.ChromeOptions() chrome_options.add_argument('--headless') # 无头模式,不显示浏览器窗口 browser = webdriver.Chrome(chrome_options=chrome_options) # 打开页面 browser.get('https://data.eastmoney.com/xg/xg/?mkt=kzz') # 获取页面源代码 html = browser.page_source # 关闭浏览器 browser.quit() print(html) ``` 这段代码将使用Chrome浏览器访问https://data.eastmoney.com/xg/xg/?mkt=kzz页面,并获取页面源代码。你可以在代码中添加其他操作,比如查找特定元素、点击按钮等。 ### 回答2: 使用Selenium库可以实现对https://data.eastmoney.com/xg/xg/?mkt=kzz页面的爬取。 首先,我们需要安装并导入selenium库,并且也需要安装浏览器驱动程序,例如Chrome驱动程序。 接下来,我们可以通过实例化一个浏览器对象驱动程序,打开该页面。 ```python from selenium import webdriver # 使用chrome驱动程序 driver = webdriver.Chrome() # 打开页面 driver.get("https://data.eastmoney.com/xg/xg/?mkt=kzz") ``` 爬取页面信息时,可以使用xpath或者css选择器来定位元素,并提取相应的信息。 ```python # 使用xpath选择器 title = driver.find_element_by_xpath("//h1").text print(title) # 使用css选择器 content = driver.find_element_by_css_selector(".content").text print(content) ``` 以上代码演示了如何获取页面中的标题和内容,并打印输出。 最后,别忘记关闭浏览器对象。 ```python # 关闭浏览器对象 driver.quit() ``` 这样就完成了对https://data.eastmoney.com/xg/xg/?mkt=kzz页面信息的爬取。 ### 回答3: 使用Selenium爬取https://data.eastmoney.com/xg/xg/?mkt=kzz页面信息,可以按照以下步骤进行操作: 1. 导入Selenium库和相关模块: ``` from selenium import webdriver from selenium.webdriver.chrome.options import Options ``` 2. 设置Chrome浏览器的选项: ``` chrome_options = Options() chrome_options.add_argument('--headless') # 无头模式,不显示浏览器界面 chrome_options.add_argument('--disable-gpu') # 禁用GPU加速 ``` 3. 创建Chrome浏览器对象: ``` driver = webdriver.Chrome(chrome_options=chrome_options) ``` 4. 打开目标页面: ``` url = 'https://data.eastmoney.com/xg/xg/?mkt=kzz' driver.get(url) ``` 5. 获取页面中需要的信息: ``` # 例如获取页面标题 title = driver.title print(title) # 例如获取页面中的内容 content = driver.find_element_by_xpath('//div[@class="content"]') print(content.text) ``` 6. 关闭浏览器对象: ``` driver.quit() ``` 通过以上步骤,就可以使用Selenium自动打开指定页面,获取页面中的信息。在实际应用中,还可以根据页面的DOM结构和需要获取的具体信息,使用Selenium提供的定位元素方法(如xpath、id、class等)来获取指定元素的内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值