您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 国内外标准规范 > selenium webdriver+python基本操作
seleniumwebdriver+python的基本操作quit()退出并关闭某程序,browser.quit().close()关闭窗口,Browser.close()time.sleep()函数设置某个位置停留一段时间,在哪里想停留就在哪里插入此函数,括号里为秒数,注意:使用此函数,要importtime。fromseleniumimportwebdriverimporttimebrowser=webdriver.Firefox()browser.get(')browser.find_element_by_id('userName').send_keys('sysadmin')browser.find_element_by_id('password').send_keys('sysadmin')browser.find_element_by_xpath('/html/body/form/div[2]/div/div[3]/ul/li[3]/span[1]/a/img').click()time.sleep(10)browser.close()设置登录成功后停留了10秒,然后关闭页面在适当的位置加入time.sleep()有助于减少网络原因造成的脚本执行失败.title返回当前页面的标题browser.title.forward()前进,browser.foeward().back()后退,browser.back().refresh()刷新,browser.refresh().current_url返回当前页面url,browser.current_url.window_handles返回当前浏览器的所有窗口,browser.window_handles.current_window_handle返回当前浏览器的窗口句柄,browser.current_window_handle.swatch_to_window(“window_name”)选择窗口,browser.switch_to_window(“要切换到的窗口名”)对话框操作.switch_to_alert()选择窗口对象accept()点击“确认”.dismiss()点击“取消”text获取文本值Send_keys(‘keys’)输入值定位元素Id定位browser.find_element_by_id(‘id’)name定位browser.find_element_by_name(‘name’)css定位CSS(CascadingStyleSheets)是一种语言,它被用来描述HTML和XML文档的表现。CSS使用选择器来为页面元素绑定属性。这些选择器可以被selenium用作另外的定位策略。CSS的比较灵活可以选择控件的任意属性browser.find_element_by_css_selector(‘#foo’)css定位可以取name属性,如:ahref==tj_news新闻/adriver.find_element_by_css_selector(a[name=\tj_news\]).click()可以取title属性,如:aonclick=queryTab(this);mon=col=502&pn=0title=webhref=网页/adriver.find_element_by_css_selector(a[title=\web\]).click()也可以是取..:aclass=RecycleBinxzhref=javascript:void(0);driver.find_element_by_css_selector(a.RecycleBin).click()xpath定位browser.find_element_by_xpath(‘xpath’)XPath是一种在XML文档中定位元素的语言。因为HTML可以看做XML的一种实现,所以selenium用户可是使用这种强大语言在web应用中定位元素。XPath扩展了上面id和name定位方式,提供了很多种可能性,比如定位页面上的第三个多选框。xpath:attributer(属性)driver.find_element_by_xpath(//input[@id='kw']).send_keys(selenium)#input标签下id=kw的元素xpath:idRelative(id相关性)driver.find_element_by_xpath(//div[@id='fm']/form/span/input).send_keys(selenium)#在/form/span/input层级标签下有个div标签的id=fm的元素driver.find_element_by_xpath(//tr[@id='check']/td[2]).click()#id为'check'的tr,定闪他里面的第2个tdxpath:position(位置)driver.find_element_by_xpath(//input).send_keys(selenium)driver.find_element_by_xpath(//tr[7]/td[2]).click()#第7个tr里面的第2个tdxpath:href(水平参考)driver.find_element_by_xpath(//a[contains(text(),'网页')]).click()#在a标签下有个文本(text)包含(contains)'网页'的元素xpath:linkdriver.find_element_by_xpath(//a[@href=']).click()#有个叫a的标签,他有个链接href='的元素link定位browser.find_element_by_link_text(u‘链接’)有时候不是一个输入框也不是一个按钮,而是一个文字链接,我们可以通过link如:browser.find_element_by_link_text(贴吧).click()一般一个那页面上不会出现相同的文件链接,通过文字链接来定位也是一种简单有效的定位方式PartialLinkText定位通过部分链接定位browser.find_element_by_partial_link_text(贴).click()#通过find_element_by_partial_link_text()函数,我只用了“贴”字,脚本一样找到了贴吧的链接tag定位browser.find_element_by_tag_name(‘foo’)截取当前页面browser.get_screenshot_as_file(‘/Screenshots/foo.png’)举例:多种方式定位百度输入框#########百度输入框的定位方式###########通过id方式定位browser.find_element_by_id(kw).send_keys(selenium)#通过name方式定位browser.find_element_by_name(wd).send_keys(selenium)#通过tagname方式定位browser.find_element_by_tag_name(input).send_keys(selenium)#通过classname方式定位browser.find_element_by_class_name(s_ipt).send_keys(selenium)#通过CSS方式定位browser.find_element_by_css_selector(#kw).send_keys(selenium)#通过xphan方式定位browser.find_element_by_xpath(//input[@id='kw']).send_keys(selenium)############################################查看百度输入框的审查元素信息inputid=kwclass=s_ipttype=textmaxlength=100name=wdautocomplete=off如上:id=”kw”name=”wd”tagname(标签名),指的是input这个标签的名字class=s_ipt这个例子中的css定位,是通过选取元素中的id属性定位的“FindElement”与“FindElements”第一个方法返回一个WebElement或者抛出异常。后者返回所有WebElement的列表,或者空列表by方法by_id是一个极为有效定位元素的方法。普遍的现状是UI工程师在实际编写页面时很少写id或者自动生产一个ID。对于一个页面Element来说,class比自动生产的id更好。ByClassName这里的class指的是DOM中的元素,在实际使用过程中,很多DOM元素含有相同的class名divclass=cheesespanCheddar/span/divdivclass=cheesespanGouda/span/divelement=driver.find_elements_by_class_name(cheese)ByTagNameDOM的Tag元素用Tagname定位元素的例子:iframesrc=.../iframeelement=driver.find_elements_by_tag_name(iframe)ByName例子:inputtype=textname=passwdid=passwd-id/element=driver.find_element_by_name(passwd)ByLinkText例子:htmlbodypAreyousureyouwanttodothis?/pahref=continue.htmlContinue/aahref=cancel.htmlCancel/a/bodyhtmlcontinue_link=driver.find_element_by_link_text('Continue')continue_link=ByPartialLinkText根据链接的部分文字例子:htmlbodypAreyousureyouwanttodothis?/pahref=continue.htmlContinue/aahref=cancel.htmlCancel/a/bodyhtmldriver.find_element_by_partial_link_text('Conti')ByCSS从名字上看,这是根据CSS来定位元素。例子:divid=foodspanclass=dairymilk/spanspanclass=dairyagedcheese/span/divcheese=driver.find_element_by_css_selector(#foodspan.dairyaged)cheese=driver.find_element_by_css_selector(#foodspan.dairyaged)ByXPATH在高级的水平下,WebDriver尽可能使用浏览器的原生的XPath能力。在那些没有原生的XPath支持的浏览器,我们提供自己的实现方式。但是三个Driver有一定的区别。htmlbodyformid=loginForminputname=usernametype=text/inputname=passwordtype=password/inp
本文标题:selenium webdriver+python基本操作
链接地址:https://www.777doc.com/doc-4455740 .html