class BdEssSpider(scrapy.Spider): name = 'bd_ess' allowed_domains = ['https://ess.10010.com/essframe'] start_urls = ['http://*****:*****@" province_code = "bj" depart_id = "11b2kv5" province_id = "11" driver = webdriver.Ie(driver_path) js_exec = "var but_click=document.getElementsByClassName('submit')[0].children[0].onclick" def __init__(self, broadbandNo, startNo, endNo): self.broadbandNo = broadbandNo self.startNo = startNo self.endNo = endNo self.cur_month = self.date_Formate(datetime.datetime.now().month) self.cur_day = self.date_Formate(datetime.datetime.now().day) self.crawldate = str(datetime.datetime.now().year) + str( self.cur_month) + str(self.cur_day) self.params = '' pass # 将月份、日期小于10的前面补充0 def date_Formate(self, object): if (object < 10): object = "0" + str(object) return object def start_requests(self): logging.warning("=========start_requests===========") yield scrapy.Request(self.login_url, callback=self.login) def login(self, response): self.driver.get(self.login_url) time.sleep(3) self.driver.find_element_by_id("STAFF_ID").send_keys(self.userName) self.driver.find_element_by_id("LOGIN_PASSWORD").send_keys(self.passWd) Select(self.driver.find_element_by_name( "LOGIN_PROVINCE_CODE")).select_by_value(self.province_id) WebDriverWait(self.driver, 1000).until(EC.url_to_be(self.initmy_url)) logging.warning("恭喜您,您已登录成功了!") WebDriverWait(self.driver, 600).until( EC.presence_of_element_located((By.ID, 'navframe'))) self.driver.switch_to.frame("navframe") # time.sleep(30) WebDriverWait(self.driver, 600).until( EC.presence_of_element_located( (By.ID, 'SECOND_MENU_LINK_BIL6500'))) # in order to find CSM1001 js_query_acct = "var query_acct=document.getElementById('SECOND_MENU_LINK_BIL6500').onclick()" self.driver.execute_script(js_query_acct) time.sleep(3) WebDriverWait(self.driver, 600).until( EC.presence_of_element_located((By.ID, 'BIL6531'))) openmenu = self.driver.find_element_by_id("BIL6531").get_attribute( "onclick") r = re.findall(r"'([\S\s]+?)'", openmenu) request_url = "https://" + self.province_code + ".cbss.10010.com" + r[ 0] + "&staffId=" + self.userName + "&departId=" + self.depart_id + "&subSysCode=CBS&eparchyCode=0010" requests.adapters.DEFAULT_RETRIES = 5 s = requests.session() cookies_dict = {} cookies = self.driver.get_cookies() for cookie in cookies: cookies_dict[cookie['name']] = cookie['value'] with open('cookies.txt', 'w+') as f: json.dump(cookies_dict, f) with open('cookies.txt', 'r') as f: cookie_out = json.load(f) headers = { 'Referer': 'https://bj.cbss.10010.com/essframe?service=page/Sidebar', 'Host': 'bj.cbss.10010.com', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko' } yield scrapy.Request(request_url, headers=headers, cookies=cookie_out, callback=self.parse_broadbandNo, meta={'request_url': request_url}) def query_user_info(self, response): Cookie = response.request.headers.getlist('Cookie') response_str = response.body.decode("gbk") refer_url = response.meta['userinfo_request_url'] # time.sleep(3) html = etree.HTML(response_str) DateField = "" _BoInfo = html.xpath('//input[@name="_BoInfo"]/@value')[0] ACCPROVICE_ID = html.xpath('//input[@name="ACCPROVICE_ID"]/@value')[0] allInfo = html.xpath('//input[@name="allInfo"]/@value')[0] broadbandNo = response.meta['broadbandNo'] currentRightCode = html.xpath( '//input[@name="currentRightCode"]/@value')[0] Form0 = html.xpath('//input[@name="Form0"]/@value')[0] PROVICE_ID = html.xpath('//input[@name="PROVICE_ID"]/@value')[0] queryTradehide = html.xpath( '//input[@name="queryTradehide"]/@value')[0] service = html.xpath('//input[@name="service"]/@value')[0] tabSetList = html.xpath('//input[@name="tabSetList"]/@value')[0] headers = { # "Referer": "https://bj.cbss.10010.com/essframe?service=page/Sidebar, # "Referer": "https://bj.cbss.10010.com/custserv", "Referer": refer_url, 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko', 'Host': 'bj.cbss.10010.com' } cookies = self.get_cookie() # del cookies["BSS_CUSTSERV_JSESSIONID"] # del cookies["BSS_ACCTMANM_JSESSIONID"] # json.dumps(cookies) dataForm = self.custserv_dataForm(DateField, _BoInfo, ACCPROVICE_ID, allInfo, broadbandNo, ACCPROVICE_ID, currentRightCode, Form0, PROVICE_ID, queryTradehide, service, tabSetList) post_intetrated_url = "https://bj.cbss.10010.com/custserv" yield scrapy.FormRequest(url=post_intetrated_url, formdata=dataForm, method="POST", headers=headers, cookies=cookies, callback=self.get_user_property__info, meta={'broadbandNo': broadbandNo}, dont_filter=True)
from selenium import webdriver link = "http://suninjuly.github.io/simple_form_find_task.html" browser = webdriver.Ie() browser.get(link) input1 = browser.find_element_by_name('first_name') input1.send_keys("Ivan") input2 = browser.find_element_by_name('last_name') input2.send_keys("Petrov") input3 = browser.find_element_by_class_name('city') input3.send_keys("Smolensk") input4 = browser.find_element_by_id('country') input4.send_keys("Russia") button = browser.find_element_by_css_selector(".btn.btn-default") button.click()
project_directory = os.getcwd() # Creating a dictionary with parameters from test_config.json with open('test_assets{}test_config.json'.format(slash), 'r') as lines: obj = json.load(lines) # Retrieving browser name browser = obj['browser'].lower() # Launching requested browser if browser == 'firefox': driver = webdriver.Firefox() elif browser == 'chrome': driver = webdriver.Chrome() elif browser == 'ie' or browser == 'internet explorer': driver = webdriver.Ie() elif browser == 'edge': driver = webdriver.Edge() elif browser == 'safari' and sys == 'darwin': driver = webdriver.Safari() elif browser == 'phantom': if sys == 'windows': driver = webdriver.PhantomJS('C:\\phantomjs.exe') # CHANGE - TODO else: driver = webdriver.PhantomJS() else: driver = webdriver.Chrome() # Default to Chrome print('Browser error.') # Maximize automation window driver.maximize_window()
def run_with_IE(): common_step(webdriver.Ie())
def callback(): search = entryBox.get() passwordBox = pswdBox.get() ## ClearTran Page Behaviour ie_driver = webdriver.Ie("<PATH>") #ie_driver = webdriver.Ie(<PATH>) # Minimize IEDriverServer.exe #webdriverIe.manage().window().set_window_position(-2000,0) ie_driver.get('<PATH>') wait = ui.WebDriverWait(ie_driver, 20) username_field = ie_driver.find_element_by_id('Username') usr = os.getlogin() username_field.send_keys(usr) password_field = ie_driver.find_element_by_id('Password') password_field.send_keys(passwordBox) password_field.send_keys(Keys.RETURN) wait = ui.WebDriverWait(ie_driver, 10) time.sleep(2) maint = ie_driver.find_element_by_id("Menubar_tdMaint").click() time.sleep(3) users = ie_driver.find_element_by_xpath( "//*[@id='_ctl5_tblMaintenance']/tbody/tr/td/a[2]").click() # Paste in searchfield time.sleep(3) findUser = ie_driver.find_element_by_id("user_txtUserName") findUser.send_keys(search) submit = ie_driver.find_element_by_id("user_btnFindUser").click() time.sleep(1) # Found user usrName = ie_driver.find_element_by_xpath( "//*[@id='user_grdUsers']/tbody/tr[2]/td[1]/a").click() # CHANGE PASSWORD changePswd = ie_driver.find_element_by_xpath( "//*[@id='user_txtPassword']") # SELECT ALL, for current password and delete changePswd.send_keys(Keys.CONTROL, 'a') changePswd.send_keys(Keys.DELETE) changePswd.send_keys("Password1") confirmPswd = ie_driver.find_element_by_xpath( "//*[@id='user_txtPasswordConfirm']") confirmPswd.send_keys(Keys.CONTROL, 'a') confirmPswd.send_keys(Keys.DELETE) confirmPswd.send_keys("Password1") # CHECK LOCK-OUT STATE # http://stackoverflow.com/questions/14442636/how-can-i-check-if-a-checkbox-is-checked-in-selenium-python-webdriver locked_out = ie_driver.find_element_by_xpath( "//*[@id='user_chkIsLocked']") if locked_out.is_selected(): # If selected, uncheck the check box locked_out.click() update = ie_driver.find_element_by_xpath( "//*[@id='user_btnupdate']").click() else: update = ie_driver.find_element_by_xpath( "//*[@id='user_btnupdate']").click() #update = ie_driver.find_element_by_xpath("//*[@id='user_btnupdate']").click() # CREATE A POPUP STATING PASSWORD WAS CHANGED messagebox.showinfo( title="Password Changed", message='Password has been changed to:\n\tPassword1') # Sign out of ClearTran signOff = ie_driver.find_element_by_xpath( "//*[@id='Menubar_btnLogoff']").click() time.sleep(3) ie_driver.close() PROCNAME = "IEDriverServer.exe" for proc in psutil.process_iter(): if proc.name() == PROCNAME: proc.kill()
def setUp(self): self.driver = webdriver.Ie(executable_path="e:\\IEDriverServer")
@time: 2019-07-09 15:01 --------------------------------------- """ import time from selenium import webdriver from pymouse import PyMouse from spiders.dd_keybored import DDKeyborad from selenium.webdriver.common.desired_capabilities import DesiredCapabilities DesiredCapabilities.INTERNETEXPLORER['ignoreProtectedModeSettings'] = True # 初始化driver driver=webdriver.Ie(executable_path="C:\\work\\ie\\32\\IEDriverServer.exe") driver.maximize_window() # 初始化mouse m = PyMouse() # 初始化键盘 dd = DDKeyborad() # 访问首页 driver.get("https://ipcrs.pbccrc.org.cn/index1.do") time.sleep(1) driver.find_element_by_class_name("startBtn").click() time.sleep(1) # 过证书验证 confirm=driver.switch_to_alert()
def DriverCreator(): ie_driver_exe = support_binaries.FindPath( 'IEDriverServer_%s' % self._architecture, 'AMD64', 'win') return webdriver.Ie(executable_path=ie_driver_exe)
for i in range(len(NoList)): NoListin.append(NoList[i].value) for i in range(len(NameList)): NameListin.append(NameList[i].value) for i in range(len(NameList2)): NameList2in.append(NameList2[i].value) for i in range(len(LAIYUANList)): LAIYUANListin.append(LAIYUANList[i].value) for i in range(len(NameList)): LEIXINGListin.append(LEIXINGList[i].value) for i in range(len(XINGZHIList)): XINGZHIListin.append(XINGZHIList[i].value) for i in range(len(LAOSHIList)): LAOSHIListin.append(LAOSHIList[i].value) driver = webdriver.Ie() # 创建Chrome对象. # 操作这个对象. driver.get('http://xuanke.tongji.edu.cn/tj_login/frame.jsp') # get方式访问百度. #driver.get('http://www.baidu.com') # get方式访问百度. start = input("inputID = ") driver.switch_to_frame("detailfrm") #driver.find_element_by_name("KCMC").send_keys("159") startno = NoListin.index(int(start)) j = startno while 1: driver.find_element_by_name("KCMC").send_keys(NameListin[j]) driver.find_element_by_name("jsgh").send_keys(LAOSHIListin[j]) driver.find_element_by_name("BYSJDD").send_keys("校内") driver.find_element_by_name("KTLX").find_elements_by_tag_name( "option")[1].click()
account_number = rows[3][3] # Create a new browser Session # driver = browser # desired_cap = \ # { # 'nativeEvents' : 'False', # 'pageLoadStrategy' : 'eager' # } cap = DesiredCapabilities.INTERNETEXPLORER.copy() cap['IE_ENSURE_CLEAN_SESSION'] = True cap['ENABLE_ELEMENT_CACHE_CLEANUP'] = True driver = webdriver.Ie(str(CONFIG_PATH / 'IEDriverServer.exe')) ## Select Appropriate URL based on the Environment Value (env) env = "BICL_UAT" baseURL = Environments.return_environments(env) # baseURL = "https://beta.bi.dev.wedbush.com" driver.get(baseURL) driver.maximize_window() # This section closes extra open window tabs handles = driver.window_handles size = len(handles) parent_handle = driver.current_window_handle for x in range(size):
def setUp(self): self.driver = webdriver.Ie(executable_path=r'../../IEDriverServer.exe')
import time from selenium import webdriver browser="chrome" if browser=="chrome": driver=webdriver.Chrome(executable_path="C:/Users/Heggade/PycharmProjects/s_class/drivers/chromedriver.exe") elif browser=="firefox": driver=webdriver.Firefox(executable_path="C:/Users/Heggade/PycharmProjects/s_class/drivers/geckodriver.exe") elif browser=="ie": driver=webdriver.Ie(executable_path="C:/Users/Heggade/PycharmProjects/s_class/drivers/IEDriverServer.exe") else: print("provide appropriate browser name") driver.get("http://makemytrip.com") driver.maximize_window() time.sleep(5) driver.find_element_by_id("header_tab_hotels").click() time.sleep(3) driver.back() time.sleep(2) driver.find_element_by_id("header_tab_holidays").click() time.sleep(3) driver.forward() driver.refresh()
def _set_driver(self): if self.browser == 'opera': options = Options() options.binary_location = DriverPath.OPERA_BINARY_PATH print('\nBinary Path: {}'.format(DriverPath.OPERA_BINARY_PATH)) try: self.driver = webdriver.Opera(options=options) except SessionNotCreatedException as e: print('\nSessionNotCreatedException:', e.msg) raise except WebDriverException as e: print('\nWebDriverException:', e.msg) path = self._get_driver_path() print('Trying to look for a \'operadriver\' under:\n{}'.format(path)) self.driver = webdriver.Opera(options=options, executable_path=path) if self.browser == 'chrome': try: self.driver = webdriver.Chrome() except WebDriverException as e: print('\nPlease note:', e.msg) path = self._get_driver_path() print('Trying to look for a \'chromedriver\' under:\n{}'.format(path)) self.driver = webdriver.Chrome(executable_path=path) if self.browser == 'ie': try: self.driver = webdriver.Ie() except WebDriverException as e: print('\nPlease note:', e.msg) path = self._get_driver_path() print('Trying to look for a \'IEDriverServer\' under:\n{}'.format(path)) self.driver = webdriver.Ie(executable_path=path) if self.browser == 'mozilla': try: self.driver = webdriver.Firefox() except WebDriverException as e: print('\nPlease note:', e.msg) path = self._get_driver_path() print('Trying to look for a \'geckodriver\' under:\n{}'.format(path)) self.driver = webdriver.Firefox(executable_path=path) if self.browser == 'edge': # Purpose: Probe the underlying platform’s hardware, operating system, # and interpreter version information. # print('Version tuple:', platform.python_version_tuple()) # print('Compiler :', platform.python_compiler()) # print('Build :', platform.python_build()) if sum(int(i) for i in platform.python_version_tuple()) > 13: print('\nVersion:', platform.python_version()) print('WebDriver is now a Feature On Demand') print('For more info please check: {}'.format( 'https://blogs.windows.com/msedgedev/2018/06/14/' 'webdriver-w3c-recommendation-feature-on-demand/#Rg8g2hRfjBQQVRXy.97\n')) self.driver = webdriver.Edge() else: path = self._get_driver_path() print('Trying to look for a \'MicrosoftWebDriver\' under:\n{}'.format(path)) self.driver = webdriver.Edge(executable_path=path)
def get_local_driver(browser_name, headless, proxy_string, proxy_auth, proxy_user, proxy_pass, user_agent, disable_csp, enable_sync, user_data_dir, extension_zip, extension_dir): ''' Spins up a new web browser and returns the driver. Can also be used to spin up additional browsers for the same test. ''' downloads_path = download_helper.get_downloads_folder() download_helper.reset_downloads_folder() if browser_name == constants.Browser.FIREFOX: try: try: # Use Geckodriver for Firefox if it's on the PATH profile = _create_firefox_profile(downloads_path, proxy_string, user_agent, disable_csp) firefox_capabilities = DesiredCapabilities.FIREFOX.copy() firefox_capabilities['marionette'] = True options = webdriver.FirefoxOptions() if headless: options.add_argument('-headless') if LOCAL_GECKODRIVER and os.path.exists(LOCAL_GECKODRIVER): make_driver_executable_if_not(LOCAL_GECKODRIVER) elif not is_geckodriver_on_path(): if not "".join(sys.argv) == "-c": # Skip if multithreaded from seleniumbase.console_scripts import sb_install sys_args = sys.argv # Save a copy of current sys args print("\nWarning: geckodriver not found." " Installing now:") sb_install.main(override="geckodriver") sys.argv = sys_args # Put back the original sys args firefox_driver = webdriver.Firefox( firefox_profile=profile, capabilities=firefox_capabilities, options=options) except WebDriverException: # Don't use Geckodriver: Only works for old versions of Firefox profile = _create_firefox_profile(downloads_path, proxy_string, user_agent, disable_csp) firefox_capabilities = DesiredCapabilities.FIREFOX.copy() firefox_capabilities['marionette'] = False firefox_driver = webdriver.Firefox( firefox_profile=profile, capabilities=firefox_capabilities) return firefox_driver except Exception as e: if headless: raise Exception(e) return webdriver.Firefox() elif browser_name == constants.Browser.INTERNET_EXPLORER: if not IS_WINDOWS: raise Exception( "IE Browser is for Windows-based operating systems only!") from selenium.webdriver.ie.options import Options ie_options = Options() ie_options.ignore_protected_mode_settings = False ie_options.ignore_zoom_level = True ie_options.require_window_focus = False ie_options.native_events = True ie_options.full_page_screenshot = True ie_options.persistent_hover = True ie_capabilities = ie_options.to_capabilities() if LOCAL_IEDRIVER and os.path.exists(LOCAL_IEDRIVER): make_driver_executable_if_not(LOCAL_IEDRIVER) return webdriver.Ie(capabilities=ie_capabilities) elif browser_name == constants.Browser.EDGE: if LOCAL_EDGEDRIVER and os.path.exists(LOCAL_EDGEDRIVER): make_driver_executable_if_not(LOCAL_EDGEDRIVER) # The new Microsoft Edge browser is based on Chromium chrome_options = _set_chrome_options(downloads_path, headless, proxy_string, proxy_auth, proxy_user, proxy_pass, user_agent, disable_csp, enable_sync, user_data_dir, extension_zip, extension_dir) return webdriver.Chrome(executable_path=LOCAL_EDGEDRIVER, options=chrome_options) else: return webdriver.Edge() elif browser_name == constants.Browser.SAFARI: if "".join(sys.argv) == "-c": # Skip if multithreaded raise Exception("Can't run Safari tests in multi-threaded mode!") return webdriver.Safari() elif browser_name == constants.Browser.OPERA: if LOCAL_OPERADRIVER and os.path.exists(LOCAL_OPERADRIVER): make_driver_executable_if_not(LOCAL_OPERADRIVER) return webdriver.Opera() elif browser_name == constants.Browser.PHANTOM_JS: with warnings.catch_warnings(): # Ignore "PhantomJS has been deprecated" UserWarning warnings.simplefilter("ignore", category=UserWarning) return webdriver.PhantomJS() elif browser_name == constants.Browser.GOOGLE_CHROME: try: chrome_options = _set_chrome_options(downloads_path, headless, proxy_string, proxy_auth, proxy_user, proxy_pass, user_agent, disable_csp, enable_sync, user_data_dir, extension_zip, extension_dir) if LOCAL_CHROMEDRIVER and os.path.exists(LOCAL_CHROMEDRIVER): make_driver_executable_if_not(LOCAL_CHROMEDRIVER) elif not is_chromedriver_on_path(): if not "".join(sys.argv) == "-c": # Skip if multithreaded from seleniumbase.console_scripts import sb_install sys_args = sys.argv # Save a copy of current sys args print("\nWarning: chromedriver not found. Installing now:") sb_install.main(override="chromedriver") sys.argv = sys_args # Put back the original sys args return webdriver.Chrome(options=chrome_options) except Exception as e: if headless: raise Exception(e) if LOCAL_CHROMEDRIVER and os.path.exists(LOCAL_CHROMEDRIVER): make_driver_executable_if_not(LOCAL_CHROMEDRIVER) return webdriver.Chrome() else: raise Exception("%s is not a valid browser option for this system!" % browser_name)
xlsx_file = sys.argv[1] workbook = load_workbook(filename=xlsx_file) sheet = workbook.active windchill_url = "" cap = DesiredCapabilities().INTERNETEXPLORER cap['ignoreProtectedModeSettings'] = True cap['IntroduceInstabilityByIgnoringProtectedModeSettings'] = True cap['nativeEvents'] = True cap['ignoreZoomSetting'] = True cap['requireWindowFocus'] = True cap['INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS'] = True browser = webdriver.Ie( capabilities=cap, executable_path=r'D:\WinPython\python\IEDriverServer.exe') browser.set_page_load_timeout(5) browser.get(windchill_url) input("login and press [Enter] to continue...") main_window = browser.current_window_handle wait_5_sec = WebDriverWait(browser, 5) MSG_MISSING_NR = "NUMBER NOT FOUND" MSG_MISSING_ALT_NR = "ALT NUMBER NOT FOUND" def find_part(part_number): browser.get(windchill_url) find_field = wait_5_sec.until( EC.presence_of_element_located((By.ID, "gloabalSearchField"))) find_field.clear()
print("Environment Set up through Excel File") print("For "+OS+" Operating System , Intializing "+browser+" .......") driver = webdriver.Chrome(executable_path="DriverConfig\Windows\chromedriver.exe", ) elif(OS == 'Mac'): print("Environment Set up through Excel File") print("Intializing "+browser+" browser for OS "+OS+" through Excel") driver = webdriver.Chrome(executable_path="DriverConfig\Mac\chromedriver") elif(OS == 'Linux'): print("Environment Set up through Excel File") print("Intializing "+browser+" browser for OS "+OS+" through Excel") driver = webdriver.Chrome(executable_path="DriverConfig\Linux\chromedriver") if(browser == 'IE'): if(OS == 'Windows'): print("Environment Set up through Excel File") print("Intializing "+browser+" browser for OS "+OS+" through Excel") driver = webdriver.Ie(executable_path="DriverConfig\Windows\IEDriverServer.exe") elif(OS == 'Mac'): print("Environment Set up through Excel File") print("Intializing "+browser+" browser for OS "+OS+" through Excel") driver = webdriver.Ie(executable_path="DriverConfig\Mac\IEDriverServer") elif(OS == 'Linux'): print("Environment Set up through Excel File") print("Intializing "+browser+" browser for OS "+OS+" through Excel") driver = webdriver.Ie(executable_path="DriverConfig\Linux\IEDriverServer") if(browser == 'Firefox'): if(OS == 'Windows'): print("Environment Set up through Excel File") print("Intializing "+browser+" browser for OS "+OS+" through Excel") driver = webdriver.Ie(executable_path="DriverConfig\Windows\IEDriverServer.exe") elif(OS == 'Mac'): print("Environment Set up through Excel File")
from selenium import webdriver import time # every browser exposes an executable file, thought selenium # we ned to invoke exe file such as chrome. # driver = webdriver.Chrome(executable_path="C:\\chromedriver.exe") # driver = webdriver.Firefox(executable_path="C:\\geckodriver.exe") driver = webdriver.Ie(executable_path="C:\\IEDriverServer.exe") driver.maximize_window() driver.implicitly_wait(10) # this is allow to land inside the webapage that you need to access driver.get("https://rahulshettyacademy.com") # get the website title if we inside or not print(driver.title) print(driver.current_url) driver.get("https://rahulshettyacademy.com/AutomationPractice/") print(driver.current_url) time.sleep(5) driver.back() driver.refresh() # driver close all browser time.sleep(3) driver.close()
def getIeHandler(): browser = webdriver.Ie() return browser
ChromeDriverManager().install(), options=opts, ), supported.chromium: lambda opts: webdriver.Chrome( ChromeDriverManager(chrome_type=ChromeType.CHROMIUM).install(), options=opts, ), supported.firefox: lambda opts: webdriver.Firefox( executable_path=GeckoDriverManager().install(), options=opts, ), supported.ie: lambda opts: webdriver.Ie( IEDriverManager().install(), options=opts, ), supported.edge: lambda ____: webdriver.Edge(EdgeChromiumDriverManager().install(), ), supported.opera: lambda opts: webdriver.Opera( executable_path=OperaDriverManager().install(), options=opts, ), } def local( name: supported. BrowserName = 'chrome', # todo: consider change default to ... and then get it from options if passed options: WebDriverOptions = None
def test(self): driverLocation = "path to IEDriverServer.exe" os.environ["webdriver.ie.driver"] = driverLocation driver = webdriver.Ie(driverLocation) driver.get("http://www.letskodeit.com")
def setUp(self): # 启动IE浏览器 # self.driver = webdriver.Firefox(executable_path = "e:\\geckodriver") self.driver = webdriver.Ie(executable_path="e:\\IEDriverServer")
def ie_Ie(): driver = webdriver.Ie() driver.maximize_window() return driver
def setup_module(module): webserver = SimpleWebServer() webserver.start() IeSelectElementHandlingTests.webserver = webserver IeSelectElementHandlingTests.driver = webdriver.Ie()
import os import time from selenium import webdriver from selenium.webdriver.common.by import By URL = "http://www.baidu.com" base_path = os.path.dirname(os.path.abspath(__file__)) + '\..\..' driver_path = os.path.abspath(base_path+'\drivers\IEDriverServer.exe') locator_kw = (By.ID, 'kw') locator_su = (By.ID, 'su') locator_result = (By.XPATH, '//div[contains(@class, "result")]/h3/a') driver = webdriver.Ie(executable_path=driver_path) driver.get(URL) driver.find_element(*locator_kw).send_keys('selenium 灰蓝') driver.find_element(*locator_su).click() time.sleep(2) links = driver.find_elements(*locator_result) for link in links: print(link.text) time.sleep(3) driver.quit()
def callback(): defaultID = 'K525' loginAdmin = os.getlogin() loginPwd = pwdEntryBox.get() searcClient = clientEntryBox.get() # TODO: login to STARS [application tab > general], if KaleidaScope login not needed got directly portal = '<PATH>' # TODO: using IE (for now until test in Chrome/FF) ie_driver = webdriver.Ie("<PATH>") #ie_driver = webdriver.Ie("<PATH>") ie_driver.get(portal) delay = 3 # K525 k525 = ie_driver.find_element_by_xpath("//*[@id='txtClientID']") k525.send_keys(defaultID) # AD Account admin = ie_driver.find_element_by_xpath("//*[@id='txtUserID']") admin.send_keys(loginAdmin) # PASSWORD pwd = ie_driver.find_element_by_xpath("//*[@id='txtPassword']") pwd.send_keys(loginPwd) pwd.send_keys(Keys.RETURN) # Wait for page to load/use JavaScript time.sleep(45) print('45s passed') time.sleep(2) # try: # WebDriverWait(ie_driver, delay).until(EC.presence_of_element_located(ie_driver.find_element_by_link_text('ADMIN').click())) # except TimeoutException: # print("Page took too long to load!") # JavaScript test #ie_driver("javascript:document.getElementById('Admin').click()") #ie_driver.find_element_by_link_text("ADMIN").click() #ie_driver.find_element_by_id("orionSlCtrl").click() # Click on Admin _clickADMIN = ie_driver.find_element_by_xpath("//*[@type='ADMIN']") _clickADMIN.click() # Another window opens and loads, wait 10s? time.sleep(45) # Window before window_handle_before = ie_driver.window_handles[0] # (opened window) Get window handle window_handle_after = ie_driver.window_handles[1] ie_driver.switch_to.window(window_handle_after) # Click on Users users = ie_driver.find_element_by_link_text("Users").click() time.sleep(2)
def __init__(self, reports=None, driver_name=None, mode=None, driverDirectory=None): if reports is None: reports = [] Robot.__init__(self, reports) if driver_name is None: driver_name = self.config.robot['driverName'] env = self.config.robot["env"] if mode is None: mode = self.get_mode_from_config() service_args_value = "" if driver_name == 'Firefox': ff_profile = webdriver.FirefoxProfile() ff_profile.set_preference("network.proxy.type", 1) ff_profile.set_preference("network.proxy.http_port", 8080) ff_profile.set_preference("network.proxy.http", "surf-sccc.pasi.log.intra.laposte.fr") ff_profile.set_preference("network.proxy.ssl_port", 8080) ff_profile.set_preference("network.proxy.ssl", "surf-sccc.pasi.log.intra.laposte.fr") ff_profile.set_preference("network.proxy.socks_port", 8080) ff_profile.set_preference("network.proxy.socks", "surf-sccc.pasi.log.intra.laposte.fr") ff_profile.set_preference("network.proxy.ftp_port", 8080) ff_profile.set_preference("network.proxy.ftp", "surf-sccc.pasi.log.intra.laposte.fr") ff_profile.set_preference("network.proxy.socks_username", "PPDJ824") ff_profile.set_preference("network.proxy.socks_password", "Lilalou07PANDORE") ff_profile.set_preference('browser.cache.disk.enable', False) ff_profile.set_preference('browser.cache.memory.enable', False) ff_profile.set_preference('browser.cache.offline.enable', False) ff_profile.set_preference('network.cookie.cookieBehavior', 2) ff_profile.update_preferences() options_ff = OptionsFF() if mode == "headless": options_ff.add_argument("--no-sandbox") # optionsFF.add_argument("--window-size=1900,1080") options_ff.add_argument("--width=1920") options_ff.add_argument("--height=1080") options_ff.add_argument("--disable-extensions") options_ff.add_argument("--disable-dev-shm-usage") options_ff.add_argument("--ignore-certificate-errors") options_ff.add_argument("--disable-gpu") options_ff.add_argument("--headless") self.driver = webdriver.Firefox( firefox_profile=ff_profile, options=options_ff ) elif driver_name == 'IE': if driverDirectory is None: self.driver = webdriver.Ie(self.config.robot["repertoireDriver"]) else: self.driver = webdriver.Ie(driverDirectory) else: # Chrome options = OptionsChrome() options.add_argument("--incognito") # if env != 'dev': # # options.add_argument('--proxy-server=http://localhost:3128') # service_args_value = ['--verbose', '--log-path=/tmp/chromedriver.log'] if mode == "headless": options.add_argument("--no-sandbox") options.add_argument("--headless") options.add_argument("--window-size=1900,1080") options.add_argument("--disable-extensions") options.add_argument("--disable-dev-shm-usage") options.add_argument("--ignore-certificate-errors") options.add_argument("--disable-gpu") options.add_argument("--start-maximized") if "download_directory" in self.config.robot: prefs = {'download.default_directory': self.config.robot["download_directory"]} options.add_experimental_option('prefs', prefs) driver_path = self.config.robot["repertoireDriver"] self.driver = webdriver.Chrome(chrome_options=options, executable_path=driver_path)
from selenium import webdriver driver = webdriver.Ie(executable_path="C:\DriverIE\IEDriverServer") print(type(driver)) driver.get("https://opensource-demo.orangehrmlive.com/") myPageTitte = driver.title print(myPageTitte) #assert "OrangeHRM" in myPageTitte driver.quit()
def login(): browser = webdriver.Ie() browser.maximize_window() #登陆页面 browser.get('http://10.246.109.17/fss') #输入用户名密码数据 browser.find_element_by_id('loginname').send_keys('chenminghui.lube') browser.find_element_by_id('password').send_keys('1') #勾选记住密码 checkbox = browser.find_element_by_id('remenberUser') if not checkbox.is_selected(): checkbox.click() #点击登陆 browser.find_element_by_class_name('button').click() sleep(5) #新建其他费用报销单 lframe = browser.find_element_by_id('leftFrame') browser.switch_to.frame(lframe) browser.find_element_by_xpath( 'html/body/div[1]/div[2]/table/tbody/tr/td/div/div/div[5]/div[2]' ).click() #点击新建 browser.find_element_by_xpath( 'html/body/div[1]/div[2]/table/tbody/tr/td/div/div/div[6]/div/ul/li[1]/div/span[2]' ).click() #选择其他费用报销 browser.switch_to.default_content() mframe = browser.find_element_by_name('mainFrame') browser.switch_to.frame(mframe) browser.find_element_by_xpath( 'html/body/div[1]/div/table/tbody/tr/td/div/div/div/table/tbody/tr/td[2]/div/div[1]/table/tbody/tr[4]/td/a/img' ).click() browser.find_element_by_id('invoiceNum').send_keys('1') #附件张数 browser.find_element_by_id('billNumber').send_keys('1') #附件页数 browser.find_element_by_id('remark').send_keys(u'自动化测试') #申请事由 # browser.find_element_by_id('businessType').click()# 业务种类 #处理业务种类 # mframe = browser.find_element_by_xpath('.//*[@id="comboxDiv0"]/iframe') # browser.switch_to.frame(mframe) # browser.find_element_by_id('txtName').send_keys('002')#业务种类选择 # browser.find_element_by_id('btQuery').click()#搜索 # sleep(3) # browser.find_element_by_xpath('//table[@id="cbTable"]/tbody/tr[2]/td[2]').click()#选择业务种类 # sleep(3) #发票总金额 browser.switch_to.default_content() mframe = browser.find_element_by_name('mainFrame') browser.switch_to.frame(mframe) browser.find_element_by_id('expBCurAmount_1').clear() browser.find_element_by_id('expBCurAmount_1').send_keys('100') #点击费用项目 browser.find_element_by_id('expTree_1').click() mframe = browser.find_element_by_xpath('.//*[@id="comboxDiv0"]/iframe') browser.switch_to.frame(mframe) #常用勾选框 checkbox = browser.find_element_by_id('moreExp') if checkbox.is_selected(): checkbox.click() #费用项目 browser.find_element_by_id('txtExpense').send_keys(u'项目培训费') browser.find_element_by_id('btQuery').click() browser.find_element_by_id("treeDemo_4_span").click() #保存 browser.switch_to.default_content() mframe = browser.find_element_by_name('mainFrame') browser.switch_to.frame(mframe) browser.find_element_by_id('save_cr').click() #保存 #处理确定按钮 sleep(3) browser.switch_to.parent_frame() browser.find_element_by_css_selector(".xubox_yes.xubox_botton1").click() sleep(3) #获取单号 browser.switch_to.default_content() mframe = browser.find_element_by_name('mainFrame') browser.switch_to.frame(mframe) QIBX = browser.find_element_by_id('billCode').get_attribute('value') print QIBX #提交 browser.find_element_by_id('submit_cr').click() sleep(5) browser.switch_to.parent_frame() browser.find_element_by_css_selector(".xubox_yes.xubox_botton1").click() sleep(5)
def start_browser(self, browser='chrome'): ''' 启动浏览器 :param browser: 浏览器类型 ''' if BaseUI.driver: log_tool.info("浏览器以启动,请勿再次启动浏览器。") return try: if browser == "firefox" or browser == "ff": BaseUI.driver = webdriver.Firefox() elif browser == "chrome": driver_path = DRIVER_PATH BaseUI.driver = webdriver.Chrome(driver_path) BaseUI.driver.maximize_window() BaseUI.driver.implicitly_wait(10) elif browser == "internet explorer" or browser == "ie": BaseUI.driver = webdriver.Ie() elif browser == "opera": BaseUI.driver = webdriver.Opera() elif browser == "chrome_headless": chrome_options = Options() chrome_options.add_argument('--headless') BaseUI.driver = webdriver.Chrome(DRIVER_PATH,options=chrome_options) elif browser == "chrome_debugger": print("chrome_debugger模式") chrome_options = Options() chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9111") BaseUI.driver = webdriver.Chrome(DRIVER_PATH, options=chrome_options) # BaseUI.driver.maximize_window() BaseUI.driver.implicitly_wait(10) elif browser == "mobile": print("mobile模式") # mobileEmulation = {'deviceName': 'Galaxy S5'} # chrome_options = webdriver.ChromeOptions() # chrome_options.add_experimental_option('mobileEmulation', mobileEmulation) # BaseUI.driver = webdriver.Chrome(executable_path=DRIVER_PATH, chrome_options=chrome_options) WIDTH = 320 HEIGHT = 640 PIXEL_RATIO = 3.0 UA = 'Mozilla/5.0 (Linux; Android 4.1.1; GT-N7100 Build/JRO03C) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/35.0.1916.138 Mobile Safari/537.36 T7/6.3' mobileEmulation = {"deviceMetrics": {"width": WIDTH, "height": HEIGHT, "pixelRatio": PIXEL_RATIO},"userAgent": UA} options = webdriver.ChromeOptions() options.add_experimental_option('mobileEmulation', mobileEmulation) BaseUI.driver = webdriver.Chrome(executable_path=DRIVER_PATH, chrome_options=options) BaseUI.driver.maximize_window() BaseUI.driver.implicitly_wait(10) elif browser == "headless": chrome_options = Options() # chrome_options.add_argument('--no-sandbox') # 解决DevToolsActivePort文件不存在的报错 # chrome_options.add_argument('window-size=1920x3000') # 指定浏览器分辨率 # chrome_options.add_argument('--disable-gpu') # 谷歌文档提到需要加上这个属性来规避bug # chrome_options.add_argument('--hide-scrollbars') # 隐藏滚动条, 应对一些特殊页面 # chrome_options.add_argument('blink-settings=imagesEnabled=false') # 不加载图片, 提升速度 chrome_options.add_argument('--headless') # 浏览器不提供可视化页面. linux下如果系统不支持可视化不加这条会启动失败 chrome_options.binary_location = r"C:\Program Files\Google\Chrome\Application\chrome.exe" # 手动指定本机电脑使用的浏览器位置 # 创建一个driver,进行后面的请求页面等操作,executable_path指定本机中chromedriver.exe的位置 BaseUI.driver = webdriver.Chrome(chrome_options=chrome_options, executable_path=DRIVER_PATH) elif browser == 'edge': BaseUI.driver = webdriver.Edge() else: log_tool.error("启动浏览器失败,没有找到%s浏览器,请输入'ie', 'ff', 'opera', 'edge', 'chrome' or 'chrome_headless'"% browser) raise NameError( "启动浏览器失败,没有找到%s浏览器,请输入'ie', 'ff', 'opera', 'edge', 'chrome' or 'chrome_headless'"% browser) except WebDriverException: log_tool.error("启动浏览器失败,请检查webdriver是否配置,或者webdriver版本是否和浏览器匹配") raise self.shot("-------测试开始,启动{}浏览器成功-------".format(browser))
# coding:utf-8 from selenium import webdriver from urllib import request from bs4 import BeautifulSoup import chardet import requests import os #导入os模块 import win32 import time import docx drv = webdriver.Ie('D:\webdriver\IEDriverServer') time.sleep(5) head = {} # time.sleep(1) head[ 'User-Agent'] = 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36' #for ti in range(1): '''time.sleep(3) nextPage = drv.find_element_by_xpath("//a[@href='publicApplyServlet?command=findPublicApplyList&orgCode=&pager.offset=10']") nextPage.click()''' address = 'http://221.232.152.210/PBBS/publicnoticeservlet?command=findAllPublicNoticeList&flag=hppfBulletinList&pager.offset=1500' x = 1500 for w in range(239): # time.sleep(3) drv.get(address) # time.sleep(5) elements = drv.page_source time.sleep(1) soup = BeautifulSoup(elements, 'html.parser')