python selenium 定位

最近在学习python,但是遇到了一些问题,总结一下子:

1.选中Drop Down list下面的值:

driver.find_element_by_xpath("//select[@id='PO']/option[@selected='selected']").click()

driver.find_element_by_xpath("//select[@id='QD']/option[@value='admin']").click()
driver.find_element_by_xpath("//select[@id='RD']/option[@value='admin']").click()

2. 在一个页面中存在一个iframe,iframe中也是一个页面,定位于iframe中的Html 中body输入内容 :(这个iframe没有id)

iframe = driver.find_element_by_css_selector('iframe')
text_var="123456787"
driver.switch_to_frame(iframe)
driver.execute_script('document.body.innerHTML = "%s"' % text_var)

或者是:这个iframe有id值的话

driver.switch_to_frame('loginiframe')

 

3. 使用完这个iframe以后,要返回到原来的(parent)页面中的方法:

driver.switch_to_default_content()

driver.find_element_by_id("submit").click()

4.在元素定位时,可以用到正则表达式:

//*[@id='kflc']//a[contains(text(),'创建应用')]

这个*号表示所有的元素中id="kflc"值,在这个元素下面再找a并且 这个a元素中的Text的内容包含字符“创建应用”.

5.利用python写代码自动下载:

from selenium import webdriver

fp = webdriver.FirefoxProfile()

fp.set_preference("browser.download.folderList",2)
fp.set_preference("browser.download.manager.showWhenStarting",False)
fp.set_preference("browser.download.dir", "E:\\firefoxdownload")
fp.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/octet-stream")

browser = webdriver.Firefox(firefox_profile=fp)
browser.get("http://pypi.python.org/pypi/selenium")
browser.find_element_by_partial_link_text("selenium-2").click()

6.如何打开firebugs:

from selenium import webdriver

fp = webdriver.FirefoxProfile()

fp.add_extension(extension='firebug-1.8.4.xpi')

fp.set_preference("extensions.firebug.currentVersion", "1.8.4") #Avoid startup screen

browser = webdriver.Firefox(firefox_profile=fp)

7.webdriver的截图:

from selenium import webdriver

driver = webdriver.Firefox()
driver.get('http://www.python.org/')
driver.save_screenshot('screenshot.png')
driver.quit()

8.编码问题:

在每一个文件的开始处加上:#encoding=utf-8

在这个文件的后面如果用到了中文时,要在这个中文的前面加个u

driver.find_element_by_link_text(u"1创建应用").click()

9.将utf-8字符转换成gbk:

string.decode('utf-8').encode('GBK')   

10. 表中有很多列,列没有id时,可以通过下面的内容去定位:

find_element_by_xpath("//td[contains(text(),'hello world')]")

11 得到html src中的值:

dr.find_element_by_xpath("//div[@id='imgid']/img").get_attribute('src')


 

posted @ 2014-09-19 12:41  想静一下  阅读(557)  评论(0)    收藏  举报