当前位置:文档之家› selenium webdriver+python基本操作

selenium webdriver+python基本操作

seleniumwebdriver+python的基本操作quit()退出并关闭某程序,browser.quit().close()关闭窗口,Browser.close()time.sleep() 函数设置某个位置停留一段时间,在哪里想停留就在哪里插入此函数,括号里为秒数,注意:使用此函数,要import time。

设置登录成功后停留了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(Cascading Style Sheets)是一种语言,它被用来描述HTML和XML文档的表现。

CSS使用选择器来为页面元素绑定属性。

这些选择器可以被selenium用作另外的定位策略。

CSS的比较灵活可以选择控件的任意属性browser.find_element_by_css_selector(‘#foo’)css定位可以取name属性,如:<a href="" name="tj_news">新闻</a>driver.find_element_by_css_selector("a[name=\"tj_news\"]").click()可以取title属性,如:<a onclick="queryTab(this);" mon="col=502&pn=0" title="web"href="/">网页</a>driver.find_element_by_css_selector("a[title=\"web\"]").click()也可以是取..:<a class="RecycleBin xz" href="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()一般一个那页面上不会出现相同的文件链接,通过文字链接来定位也是一种简单有效的定位方式Partial Link Text 定位通过部分链接定位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")#通过tag name方式定位browser.find_element_by_tag_name("input").send_keys("selenium")#通过class name 方式定位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")############################################查看百度输入框的审查元素信息<input id="kw" class="s_ipt" type="text" maxlength="100" name="wd" autocomplete="off">如上:id=”kw”name=”wd”tag name(标签名),指的是<input>这个标签的名字class="s_ipt"这个例子中的css定位,是通过选取元素中的id属性定位的“Find Element”与“Find Elements”第一个方法返回一个WebElement或者抛出异常。

后者返回所有WebElement的列表,或者空列表by方法by_id是一个极为有效定位元素的方法。

普遍的现状是UI工程师在实际编写页面时很少写id或者自动生产一个ID。

对于一个页面Element来说,class比自动生产的id更好。

By Class Name这里的class指的是DOM中的元素,在实际使用过程中,很多DOM元素含有相同的class 名<div class="cheese"><span>Cheddar</span></div><div class="cheese"><span>Gouda</span></div>element =driver.find_elements_by_class_name("cheese") By Tag NameDOM的Tag元素用Tag name 定位元素的例子:<iframe src="..."></iframe>element = driver.find_elements_by_tag_name("iframe") By NameBy Link TextBy Partial Link Text根据链接的部分文字例子:By CSS从名字上看,这是根据CSS来定位元素。

相关主题