selenium——键盘操作(一)

from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait  #调用显式等待模块
#调用expected_conditions模块,located要传元组
from selenium.webdriver.support import expected_conditions as EC  
from selenium.webdriver.common.by import By  #和上一个模块一起使用
#调用键盘操作#第一步:初始化,使用chromeoption模式,即不展示浏览器
from selenium.webdriver.common.keys import Keys  

options=webdriver.ChromeOptions()
options.add_argument('--headless')
driver=webdriver.Chrome(options=options)
driver.get('https://www.baidu.com/')
# title=driver.title
# print(title)

# 第二步:expected_conditions模块的title_is判断try:
WebDriverWait(driver,10,0.5).until(EC.title_is('百度一下,你就知道'))
print('百度页面已经加载出来...')
except Exception as e:
print(e)
#第三步:调用Keys模块键盘操作,百度搜索输入内容,利用expected_conditions模块查看元素是否加载出来,localted后面接元组driver.find_element_by_id('kw').send_keys(u'夜神模拟器')
driver.find_element_by_id('kw').send_keys(Keys.ENTER)
try:
    #括号里要接元组    print('搜索结果出来了!')
    WebDriverWait(driver,10,0.5).until(EC.presence_of_element_located((By.ID,'su')))  
except Exception as ee:
print(ee)
print(driver.title)  #打印页面的title
print(driver.current_url)  #打印当前页面的url
#打印当前页面的代码,和get请求的text类似# first1=driver.find_element_by_id('su')
print(driver.page_source)  
# print(first1)
# print(first1.id)
# print(first1.location)
# print(first1.tag_name)
# print(first1.size)
# print(first1.title)
driver.close()
对于动态元素的定位,提供xpath定位的方法:

例如定位的元素是动态id=btn-attention
driver.find_element_by_xpath("//div[contains(@id, 'btn-attention')]")
driver.find_element_by_xpath("//div[starts-with(@id, 'btn-attention')]")
driver.find_element_by_xpath("//div[ends-with(@id, 'btn-attention')]") # 这个需要结尾是‘btn-attention’

  • contains(a, b) 如果a中含有字符串b,则返回true,否则返回false
  • starts-with(a, b) 如果a是以字符串b开头,返回true,否则返回false
  • ends-with(a, b) 如果a是以字符串b结尾,返回true,否则返回false

你可能感兴趣的:(selenium——键盘操作(一))