pythonseleniumie
『壹』 python+Selenium:IE11,sendkeys執行時不能輸入設置的內容
1、檢查 IE驅動
種不是代碼錯的,看一下你的IE 驅動器和你現在IE的版本 是不是對應的。盡管不對應也能啟動瀏覽器的。
2、你試試在sendkeys之前time.sleep(3)讓它等3秒。
『貳』 python selenium如何獲取下一頁的html網頁源碼
一開始,升談基本上很多人都是用selenium IDE錄制腳本開始的,我也是!有一本書寫得很不錯:selenium初學者指南!So,從錄制回放開始我的selenium,而在這個過程中,不斷地去補充我的html css知識,熟悉selenium的api!
慢慢地,發現錄制的腳本在回放的時候經常報錯,通過檢查發現,是定位上的錯誤,導致這種定位的錯誤的最大原因是系統前端採用了某種框架,如tigerUI,exj....所以HTML裡面的標簽很多都是動態的,比如id,class,name!這對selenium操作定位的元素而進行自動化來說是致命傷!
所以,開始自己寫定位信息,這已經是必須的了!從而學習了xpth和css選擇器,掌握了更加有效,快速和穩定地定位頁面上的元素(定位的時候難免會碰到有iframe,這就得先切換到iframe中再進行定位了)!也就是,在selenium IDE上寫腳本!
信心滿拆好滿地在selenium IDE上寫了長長地一段腳本,並且反復跑都能成功!總算嘗到了一點點幸福的滋味!然後呢,問題來了,當我要修改和擴展吵御碰這段的腳本的時候,才發現這效率是相當地低!一句句查!一句句改!多麼痛的領悟!
另外,selenium IDE 默認啟動的是火狐,在使用selenium RC 啟動 IE 進行跑腳本時瀏覽器總是會報錯!各種搞不定,各種不淡定!決定放棄使用IDE!
selenium有一個強大之處就是支持多種語方:java,C#,python等等,並且可以把錄制的腳本轉換成代碼!我用的是java,果斷走起!
不用說,當然是把腳本轉為java代碼了,在E www.hbbz08.com clipse中重新開始搞!
選擇一個測試框架:有Junit和TestNg兩個選擇,公司用的是junit,所以,不用多說,我就用junit驗證selenium腳本的運行結果!並且,Junit和TestNG都可以生成比較直觀的測試報告!
寫好一些代碼,會看到整段代碼中密密麻麻充斥著基本相同的代碼:開始封裝代碼!把常用到API封裝起來!封裝好之後代碼看著就舒服多了!
接下來,是不是也應該把代碼中的定位信息用一個專門的文件放起來,再去讀取裡面的定位信息,這樣,維護代碼和維護定位信息就放在了兩個地方,不用老是扎在代碼和定位路徑中,簡單地分一下層!果斷嘗試!
『叄』 python+selenium調用IE:打不開瀏覽器時的設置
1.在IE瀏覽器的 設置>internet選項>安全 下 ,將四個區域中啟用保護模式的狀態保持一致(全部取消勾選或者全部勾選),應用並確定。
2.禁用【高級】中的「啟用增強保護模式」
3.設置瀏覽器縮放比例為100%。
4.若IE版本為11,則需要修改注冊表:win+R-->regedit
操作系統為64位的key值為:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BFCACHE
如果key值不存在,就添加。之後在key內部創建一個iexplorer.exe,DWORD類型,值為0,如下圖所示:
5.之後selenium即可打開IE瀏覽器
『肆』 python selenium+ie 如何定位js生成的元素
xpath定位,你用
chrome瀏覽器
,在頁面上右鍵-》
審查元素
,然後會彈出開發者工具判高,裡面會顯示你選中部分的頁面源碼並
高亮
你選擇的地方,在源碼棗瞎里右鍵,選擇
xpath
用凳沖空這個定位
『伍』 python selenium的文件下載在chrome、IE下如何設置並實現
設置下載目錄:
fromseleniumimportwebdriver
chromedriver="/usr/bin/chromedriver"
chromeOptions=webdriver.ChromeOptions()
prefs={"download.default_directory":"/path/download"}
chromeOptions.add_experimental_option("prefs",prefs)
driver=webdriver.Chrome(executable_path=chromedriver,chrome_options=chromeOptions)
設置代理:
fromseleniumimportwebdriver
PROXY="23.23.23.23:3128"#IP:PORTorHOST:PORT
chrome_options=webdriver.ChromeOptions()
chrome_options.add_argument('--proxy-server=http://%s'%PROXY)
chrome=webdriver.Chrome(chrome_options=chrome_options)
chrome.get("明或虧http://whatismyipaddress.com")
IE的也差不多。
如果解決激神了您團族的問題請採納!
如果未解決請繼續追問
『陸』 python selenium怎麼配置IE和chrome的代理,求代碼
請參考這個代碼
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from __future__ import print_function
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
def create_proxyauth_extension(proxy_host, proxy_port,
proxy_username, proxy_password,
scheme='http', plugin_path=None):
"""Proxy Auth Extension
args:
proxy_host (str): domain or ip address, ie proxy.domain.com
proxy_port (int): port
proxy_username (str): auth username
proxy_password (str): auth password
kwargs:
scheme (str): proxy scheme, default http
plugin_path (str): absolute path of the extension
return str -> plugin_path
"""
import string
import zipfile
if plugin_path is None:
plugin_path = '/tmp/vimm_chrome_proxyauth_plugin.zip'
manifest_json = """
{
"version": "1.0.0",
"manifest_version": 2,
"name": "Chrome Proxy",
"permissions": [
"proxy",
"tabs",
"unlimitedStorage",
"storage",
"<all_urls>",
"webRequest",
"webRequestBlocking"
],
"background"首段臘: {
"scripts": ["background.js"]
},
"minimum_chrome_version":"22.0.0"
}
"""
background_js = string.Template(
"""
var config = {
mode: "fixed_servers",
rules: {
singleProxy: {
scheme: "${scheme}",
host: "${host}",
port: parseInt(${port})
},
bypassList: ["foobar.com"]
}
};
chrome.proxy.settings.set({value: config, scope: "regular"}, function() {});
function callbackFn(details) {
return {
authCredentials: {
username: "者滑${username}",
password: "${password}"
}
};
}
chrome.webRequest.onAuthRequired.addListener(
callbackFn,
{urls: ["<all_urls>"]},
['blocking']
);
""燃返"
).substitute(
host=proxy_host,
port=proxy_port,
username=proxy_username,
password=proxy_password,
scheme=scheme,
)
with zipfile.ZipFile(plugin_path, 'w') as zp:
zp.writestr("manifest.json", manifest_json)
zp.writestr("background.js", background_js)
return plugin_path
proxyauth_plugin_path = create_proxyauth_extension(
proxy_host="proxy.crawlera.com",
proxy_port=8010,
proxy_username="",
proxy_password=""
)
co = Options()
co.add_argument("--start-maximized")
co.add_extension(proxyauth_plugin_path)
driver = webdriver.Chrome(chrome_options=co)
driver.get("wser.org/")
『柒』 python+selenium 怎麼判斷瀏覽器類型
很奇怪你為什麼要問這個問題,你用selenium的話,你肯定預先知道用的是什麼瀏覽器,因為不同的瀏覽器,調用的方法都不一樣
#coding=utf-8
'''
Createdon2014-11-10
@author:Neo
'''
fromseleniumimportwebdriver
importos
defopenBrowser():
仔蠢chromedriver="C:.exe"
ifnotos.path.exists(chromedriver):
chromedriver='纖春C:.exe'
os.environ["webdriver.chrome.driver"]=chromedriver
browser1=webdriver.Chrome(chromedriver)
browser2=webdriver.Firefox()
returnbrowser1,browser2
defcloseBrowser(browser):
browser.close()
cmd='taskkill/F/IMchromedriver.exe'
os.system(cmd)
b1,b2=openBrowser()
printb1,b2
closeBrowser(b1)
b2.close()
如上面的,chrome和Firefox 完全不一樣的
當然結果print出來也能看得出用的是 什麼瀏覽器
<selenium.webdriver.chrome.webdriver.WebDriver object at 0x028536F0> <selenium.webdriver.firefox.webdriver.WebDriver object at 0x02853750>念豎陪
『捌』 Selenium 和python是啥關系是否相關參考文檔
Selenium是一個軟體測試工具; python是一種面向對象、直譯式計算機程序設計語言.
Selenium分成Selenium IDE, Selenium RC (Remote Control), 和Selenium Grid. 他們都是基於Selenium Core的. 這里給你說說Selenium IDE和RC吧. Selenium IDE是Firefox的一個插件, 它可以錄制一系列的過程(比如google中輸入一個單詞, 點搜索按鈕,...,). Selenium IDE可以把這個過程錄制號, 並且轉化成多種語言, 比如:Java, C#, Perl, PHP, Python,等等吧.
那麼這時候我們就可以這些語言對應的編譯器(比如Java我們用ECLIPSE; C#用Visual Studio)把從Selenium IDE經過錄制, 得到並轉化好的程序代碼在這些編譯器里運行, 運行的時候, 程序會調用Selenium RC來實現對剛才這段過程錄制的遠程操作 (可以控制打開一個firefox或者IE的瀏覽器進行回放, 也就是測試的過程.
簡單地說就是 Selenium可以用python語言來調用它(Selenium RC)進行測試.
不知道我說明白了沒有.