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')
浙公网安备 33010602011771号