selenium工作原理:
selenium的实现原理是这样的:运行代码,启动浏览器后,webdriver会将浏览器绑定到特定端l,作为webdriver的remote server;Client(也就是测试脚本)借助ComandExecutor创建sessionld,发送HTTP请求(包括HTTP method, body)给remote server; remote server收到HTTP请求后,调用webdriver完成操作,并将HTTP响应的结果返回给Client,
selenium 检查
pip show
pip3 show selenium
元素定位方式
WebDriver8种基本元素定位方式
id定位: find_element_by_id()
name定位: find_element_by_name()
class定位:find_element_by_class_name()
tag定位:find_element_by_tag_name()
标签在一个页面多次出现
link定位:find_element_by_link_text(u"")
定位文本链接
partial_link定位:find_element_by_partial_link_text()
超链接的文本很长很长,可以只截取一部分字符串,用这种方法模糊匹配
xpath定位:find_element_by_xpath()
css定位:find_element_by_css_selector()
By定位
find_element(By.ID,"kw")
find_element(By.NAME,"wd")
find_element(By.CLASS_NAME,"s_ipt")
find_element(By.TAG_NAME,"input")
find_element(By.LINK_TEXT,u" 新闻 ")
find_element(By.PARTIAL_LINK_TEXT,u" 新 ")
find_element(By.XPATH,"//*[@class='bg s_btn']")
find_element(By.CSS_SELECTOR,"span.bg s_btn_wr>input#su")
elements复数定位
id复数定位:find_elements_by_id()
name复数定位:find_elements_by_name()
class复数定位:find_elements_by_class_name()
tag复数定位:find_elements_by_tag_name()
link复数定位:find_elements_by_link_text()
partial_link复数定位:find_elements_by_partial_link_text()
xpath复数定位:find_elements_by_xpath()
css复数定位:find_elements_by_css_selector()
JS的5种定位方式总结
id定位:document.getElementById()
name定位:document.getElementsByName()
tag定位:document.getElementsByTagName()
class定位:document.getElementsByClassName()
css定位:document.querySelectorAll()
下拉列表定位
通过index进行选择
Select(driver.find_element_by_id("gender")).select_by_index(1)
# 通过value进行选择
Select(driver.find_element_by_id("gender")).select_by_value("2")
# 通过选项文字进行选择
Select(driver.find_element_by_id("gender")).select_by_visible_text("Male")
alter弹窗处理
alert = bs.switch_to.alert
确认
alert.accept()
取消
alert.dismiss()
输入值
alert.send_keys(“xxx”)