赞
踩
Mac环境下,如何安装selenium并实现驱动,详见:selenium安装说明
示例1,使用官方示例测试
- # 导入包
- from selenium import webdriver
- from selenium.webdriver.common.by import By
-
- # 使用驱动实例开启会话
- driver = webdriver.Chrome()
-
- # 在浏览器上执行操作,导航到一个网站
- driver.get("https://www.selenium.dev/selenium/web/web-form.html")
-
- # 请求浏览器信息,实例,请求浏览器的信息,包括窗口句柄、浏览器尺寸/位置、cookie、警报等
- title = driver.title
- print(title)
-
- # 建立等待策略
- driver.implicitly_wait(0.5)
-
- # 发送命令,查找元素
- text_box = driver.find_element(by=By.NAME, value="my-text")
- submit_button = driver.find_element(by=By.CSS_SELECTOR, value="button")
-
- # 操作元素
- text_box.send_keys("Selenium")
- submit_button.click()
-
- # 获取元素信息
- message = driver.find_element(by=By.ID, value="message")
- text = message.text
- print(text)
-
- # 结束会话
- driver.quit()
示例2:基于白月黑羽示例测试
(1)获取元素测试demo1
- from selenium import webdriver
- # 导入驱动
- from selenium.webdriver.chrome.service import Service
- from selenium.webdriver.common.by import By
-
- # 设置属性
- options = webdriver.ChromeOptions()
- options.add_experimental_option('detach', True) # 不自动关闭浏览器
- options.add_argument('--start-maximized') # 窗口最大化
-
- driver = webdriver.Chrome(service=Service(r'/Users/linql/Downloads/chromedriver-mac-x64/chromedriver'), options=options)
- driver.get('https://www.baidu.com')
- '''
- # 想要在首页输入框,输入检索内容"白月黑雨"
- # 下面是通过chrome浏览器的检查,定位到这个输入框的HTML元素
- # <input id="kw" name="wd" class="s_ipt" value="" maxlength="255" autocomplete="off">
- # 选择元素方式1,根据ID方式[通常,唯一]
- ID_kw = driver.find_element(By.ID,"kw")
- ID_kw.send_keys("白月黑雨")
- # 选择元素方式2,通过XPATH方式
- xpath_kw = driver.find_element(by=By.XPATH, value="//*[@id='kw']")
- xpath_kw.send_keys("白月黑雨")
- # 输入"\n",表示点回车。
- # 选择元素方式3,通过class属性方式[不一定唯一]
- class_kw = driver.find_element(by=By.CLASS_NAME,value="s_ipt")
- class_kw.send_keys("白月黑雨\n")
- '''
- ID_kw = driver.find_element(By.ID, "kw")
- ID_kw.send_keys("白月黑雨")
-
- '''
- # 操作按钮
- # <input type="submit" id="su" value="百度一下" class="bg s_btn">
- '''
- ID_submit = driver.find_element(By.ID, "su")
- ID_submit.click()
(2)获取元素测试demo2
- from selenium import webdriver
- # 导入驱动
- from selenium.webdriver.chrome.service import Service
- from selenium.webdriver.common.by import By
-
- # 设置属性
- options = webdriver.ChromeOptions()
- options.add_experimental_option('detach', True) # 不自动关闭浏览器
- options.add_argument('--start-maximized') # 窗口最大化
-
- driver = webdriver.Chrome(service=Service(r'/Users/linql/Downloads/chromedriver-mac-x64/chromedriver'), options=options)
- driver.get('https://cdn2.byhy.net/files/selenium/sample1.html')
- # 设置全局等待时长
- # 后续执行所有的find_elements或find_element,都会采用此策略
- driver.implicitly_wait(5)
-
- # 查找同属性的多个元素
- # 查找class值为plant
- class_elements = driver.find_elements(By.CLASS_NAME, "plant")
- for class_element in class_elements:
- print(class_element.text)
- print("-----")
-
- # 查找,所有span标签
- tag_elements = driver.find_elements(By.TAG_NAME, "span")
- for tag_element in tag_elements:
- print(tag_element.text)
- print("-----"*2)
-
- # 查找ID为container包裹下的所有span标签
- tag_element = driver.find_element(By.ID,'container')
- tag_element_spans = tag_element.find_elements(By.TAG_NAME,'span')
- for tag_element_span in tag_element_spans:
- print(tag_element_span.text)
- print("-----"*3)
(3)获取输入框元素
- from selenium import webdriver
- # 导入驱动
- from selenium.webdriver.chrome.service import Service
- from selenium.webdriver.common.by import By
-
- # 设置属性
- options = webdriver.ChromeOptions()
- options.add_experimental_option('detach', True) # 不自动关闭浏览器
- options.add_argument('--start-maximized') # 窗口最大化
-
- driver = webdriver.Chrome(service=Service(r'/Users/linql/Downloads/chromedriver-mac-x64/chromedriver'), options=options)
- driver.get('https://cdn2.byhy.net/files/selenium/test3.html')
- # 设置全局等待时长
- # 后续执行所有的find_elements或find_element,都会采用此策略
- driver.implicitly_wait(5)
-
- input_element = driver.find_element(By.ID,"input1")
- input_element.clear()
- input_element.send_keys("白月黑雨")
-
(4)获取整个元素对应的HTML
1)innerHTML:
从对象的起始位置到终止位置的全部内容, 不包括HTML标签。
2)outerHTML:
除了包含innerHTML的全部内容外, 还包含对象标签本身。
- from selenium import webdriver
- # 导入驱动
- from selenium.webdriver.chrome.service import Service
- from selenium.webdriver.common.by import By
-
- # 设置属性
- options = webdriver.ChromeOptions()
- options.add_experimental_option('detach', True) # 不自动关闭浏览器
- options.add_argument('--start-maximized') # 窗口最大化
-
- driver = webdriver.Chrome(service=Service(r'/Users/linql/Downloads/chromedriver-mac-x64/chromedriver'), options=options)
-
- driver.get('https://cdn2.byhy.net/files/selenium/sample1.html')
- # 设置全局等待时长
- # 后续执行所有的find_elements或find_element,都会采用此策略
- driver.implicitly_wait(5)
-
- # 要获取整个元素对应的HTML文本内容
- outerHTML_element = driver.find_element(By.ID,'container')
- print(outerHTML_element.get_attribute("outerHTML"))
-
- print('----- '*2)
-
- innerHTML_element = driver.find_element(By.ID,'container')
- print(innerHTML_element.get_attribute("innerHTML"))
(5)获取元素文本内容
- from selenium import webdriver
- # 导入驱动
- from selenium.webdriver.chrome.service import Service
- from selenium.webdriver.common.by import By
-
- # 设置属性
- options = webdriver.ChromeOptions()
- options.add_experimental_option('detach', True) # 不自动关闭浏览器
- options.add_argument('--start-maximized') # 窗口最大化
-
- driver = webdriver.Chrome(service=Service(r'/Users/linql/Downloads/chromedriver-mac-x64/chromedriver'), options=options)
- driver.get('https://www.baidu.com')
-
-
- ID_kw = driver.find_element(By.ID, "kw")
- ID_kw.send_keys("白月黑雨")
-
- # 获取元素文本内容[输入框]
- ID_kw = driver.find_element(By.CLASS_NAME, 's_ipt')
- input_text_Content = ID_kw.get_attribute('value')
- print(input_text_Content)
-
- # 获取元素文本内容[按钮]
- s_btn = driver.find_element(By.ID, 'su')
- btn_text_Content = s_btn.get_attribute('textContent')
- print(btn_text_Content)
-
- # 退出
- driver.quit()
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。