1。定位元素的几种方法
find_element_by_id(优先,常用),对应的是id属性
find_element_by_name(优先,常用),对应的是名字属性
find_element_by_class_name,对应的是类属性的值
find_element_by_tag_name,对应的是标签名称,如输入,p,跨度,标题,正文....
find_element_by_link_text,对应的是超链接的文本内容
find_element_by_partial_link_text,对应的是部分超链接的文本内容
find_element_by_xpath,对应的是元素的路径,可通过firebug工具获得
find_element_by_css_selector,通过css属性定位,类用。id用#
示例:
driver.find_element_by_css_selector ()。send_keys (
driver.find_element_by_css_selector () .click ()
2。由定位
find_element (By.ID,千瓦)
find_element (By.NAME, " wd ")
find_element (By.CLASS_NAME, s_ipt)
find_element (By.TAG_NAME,“输入”)
find_element (By.LINK_TEXT u”新闻”)
find_element (By.PARTIAL_LINK_TEXT u“新”)
find_element(通过。XPATH, "//* [@class=' bg s_btn ']”)
find_element(跨度By.CSS_SELECTOR。”bg s_btn_wr>输入#苏”)
3。几种浏览器操作
从硒进口webdriver
司机=webdriver.Ie()——即浏览器,插件名为IEDriverServer。exe
司机=webdriver.Firefox()——火狐浏览器,插件名为geckodriver。exe
司机=webdriver.Chrome()——谷歌浏览器,插件名为chromedriver。exe
司机=webdriver.Edge()——边缘浏览器(windows10系统自带),无需插件
操作360浏览器:
360浏览器内核基于chrome浏览器,因此插件用的也是chromedriver。exe,不过得配置下
chrome_options=webdriver.ChromeOptions ()
chrome_options。binary_location=r " C: \ \凯文\ AppData \漫游用户\ 360 se6 \程序\ 360 se。exe”#这里是360年安全浏览器的路径
chrome_options.add_argument (r - lang=应用)#这里添加一些启动的参数
d=webdriver.Chrome (chrome_options=chrome_options)
4。控制浏览器
设置宽高:driver.set_window_size(400500), - - - - - -设置宽400,高500
设置全屏:driver.maximize_windows ()
前进:driver.forward ()
后退:driver.back ()
刷新当前页面:driver.refresh ()
5。定位到的元素操作
driver.find_element_by_xx (' xx ') .click()——点击操作
driver.find_element_by_xx (' xx ') .clear()——清除操作,清除文本框中的内容
driver.find_element_by_xx (' xx ') .send_keys(‘123’)——输入数据到文本框
driver.find_element_by_xx (“xx”)。submit()——提交操作,相当于回车,如在搜索框中输入内容后,执行此方法,可直接执行搜索动作
driver.find_element_by_xx (' xx ') .size(),获取元素的尺寸
driver.find_element_by_xx (“xx”)。文本——获取元素的文本
driver.find_element_by_xx .get_attribute (“xx”) (“id”)获取身份证属性,只要是属性都可通过此方法获取,如名称、id、类型、类。
driver.find_element_by_xx (' xx ') .is_displayed(),获取元素是否可见,可见返回真,否则假
6。鼠标事件
操作类中提供了鼠标操作的常用方法
执行()——执行所有操作类中存储的行为
context_click()——右击
double_click()——双击
drap_and_drop()——拖动
move_to_element——悬停
调用示例:
context_click ()
selenium.webdriver.common.action_chains ActionChains 司机=webdriver.Ie () right_click=driver.find_element_by_id () ActionChains(司机).context_click (right_click) .perform ()
其他的方法调用同上,只是改下方法而已
7。键盘操作
模拟组合键CTRL + A, CTRL + C等等从selenium.webdriver.common.keys
进口键退格键键。BACK_SPACE——driver.find_elemennt_by_id (") .send_keys (Keys.BACK_SPACE)
空格键键。空间——driver.find_elemennt_by_id (") .send_keys (Keys.SPACE)
输入CTRL + A - - - driver.find_elemennt_by_id (") .send_keys (Keys.CONTROL, ' ')
回车键- - - driver.find_elemennt_by_id (") .send_keys (Keys.ENTER)
8。设置元素等待
显式等待:
一直检测并等待某个元素出现或消失,达到最大时长条件还未成立则抛出超时异常
从硒进口webdriver selenium.webdriver.support
。ui进口WebDriverWait selenium.webdriver
。支持导入expected_conditions EC
司机=webdriver.Ie ()
driver.get (“https://www.baidu.com”)
元素=WebDriverWait(司机,5,0.5)。直到(
EC。(By.id presence_of_ element_located(千瓦))