selenium一些语法补充演示

行为链

#  行为链
from selenium.webdriver.common.action_chains import ActionChains
from selenium import webdriver


driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")

inputTag = driver.find_element_by_id('kw')
submintBtn = driver.find_element_by_id('su')

actions = ActionChains(driver)
actions.move_to_element(inputTag)
actions.send_keys_to_element(inputTag, 'python')
actions.move_to_element(submintBtn)
actions.click(submintBtn)

cookie

from selenium import webdriver


driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")

for cookie in driver.get_cookies():
    print(cookie)

print('*'*50)
#  根据cookie值查询
print(driver.get_cookie('PSTM'))
#  删除一个cookie
driver.delete_cookie('PSTM')
print('*'*50)
print(driver.get_cookie('PSTM'))
#  删除所有cookie
driver.delete_all_cookies()



页面等待

1.隐式等待:调用driver.implicitly_wait。那么在获取不可用元素之前,会先等待10秒中。示例代码如下:

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By


#  隐式等待
driver = webdriver.Chrome()
driver.get('https://www.douban.com/')

driver.implicitly_wait(5)


driver.find_element_by_id('form_email')

2.显示等待:显示等待是表明某个条件成立后才执行获取元素的操作,也可以在等待一段时间的时候指定一个最大的时间,如果超过这个时间那么久抛出一个异常。显示等待应该使用selenium.webdriver.support.exceppted_conditions期望的条件和selenium.webdriver.support.ui.webDriiverWait来配合完成。示例代码如下:

#  显式等待
WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.ID, 'form_email'))

)

3.一些其他的等待条件:

  • presence_of_element_located:某个元素已经加载完毕了
  • presence_of_al_element_ocated:网页中满足条件的所有元素都加载完毕了
  • element_to_be_cliable:某个元素是可以点击了

切换页面

from selenium import webdriver


driver = webdriver.Chrome()
#  打开第一个子网页百度的界面
driver.get("https://www.baidu.com/")
#  打开第二个子网页都爸爸的界面
driver.execute_script("window.open('http://www.douban.com/')")
#  切换到第二个字网页的界面,如果不进行这一步,就算打开了两个子界面默认的url还是在第一个子网页
driver.switch_to.window(driver.window_handles[1])

#  打印当前页面的url
print(driver.current_url)

使用代理

from selenium import webdriver


opions = webdriver.ChromeOptions()
opions.add_argument("--proxy-server=http://27.188.64.70:8060")
driver = webdriver.Chrome(options=opions)


driver.get("http://httpbin.org/ip")

WebElement类

from selenium import webdriver


driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")

submintBtn = driver.find_element_by_id('su')
print(type(submintBtn))
#  获取按钮值
print(submintBtn.get_attribute('value'))
#  截图
driver.save_screenshot("baidu.png")
发布了61 篇原创文章 · 获赞 48 · 访问量 4447

猜你喜欢

转载自blog.csdn.net/weixin_45257157/article/details/103400529