Best Python code snippet using SeleniumBase
AdBlock(Desktop_FireFox).py
Source: AdBlock(Desktop_FireFox).py
1# æ£å¼æ¸¬è©¦2# 缺é»ï¼MITMèéURLsåæ廣ååè½çç¨å¼ç¢¼åå¨ä¸èµ·å¯«ï¼å°æªæ¨¡çµå3from adblockparser import AdblockRules4from browsermobproxy import Server5from selenium import webdriver6from selenium.common.exceptions import TimeoutException7from urllib.parse import urlparse8import time9import os10import pprint11class ProxyManger:12 __BMP = "/home/kimbelly/Tools/browsermob-proxy-2.1.4/bin/browsermob-proxy"13 def __init__(self):14 self.__server = Server(ProxyManger.__BMP)15 self.__client = None16 def start_server(self):17 self.__server.start()18 return self.__server19 def start_client(self):20 self.__client = self.__server.create_proxy(params={"trustAllServers": "true"})21 return self.__client22 @property23 def client(self):24 return self.__client25 @property26 def server(self):27 return self.__server28if "__main__" == __name__:29 proxy = ProxyManger()30 server = proxy.start_server()31 client = proxy.start_client()32 profile = webdriver.FirefoxProfile()33 profile.set_proxy(client.selenium_proxy())34 profile.set_preference("browser.cache.disk.enable", False)35 profile.set_preference("browser.cache.memory.enable", False)36 profile.set_preference("browser.cache.offline.enable", False)37 # Disable download popup38 profile.set_preference("browser.download.panel.shown", False)39 profile.set_preference("browser.download.animateNotifications", False)40 profile.set_preference("browser.download.show_plugins_in_list", False)41 profile.set_preference("dom.popup_maximum", 0)42 # profile.set_preference("network.http.use-cache", False)43 driver = webdriver.Firefox(executable_path='/home/kimbelly/Tools/geckodriver', firefox_profile=profile)44 driver.set_page_load_timeout(20)45 Path = "/home/kimbelly/Experiment/Block_Ads/FilterList/test/"46 file_list = os.listdir(Path)47 rules_dic = {}48 block_result_file = []49 i = 150 block_result_file.append(None) # don't need block_result_file[0]51 for x in file_list:52 print(x + " = " + str(i))53 block_result_file.append(open("/home/kimbelly/Experiment/Block_Ads/Block_Result/Crawl_Result_5/Result" + str(i) + "_" + x + '.txt', 'w'))54 i += 155 with open(Path + x, 'rb') as blocklist_file:56 raw_rules = blocklist_file.read().decode('utf8').splitlines()57 rules_dic[x] = AdblockRules(raw_rules)58 blocklist_file.close()59 testURL_file = open('/home/kimbelly/Experiment/Crawl_TestURLs/Crawl_Result/Crawl_Result_5.txt', 'r')60 urls = testURL_file.read().splitlines()61 browseURL_count = 162 for url in urls: # each test website (maybe contain ads)63 print(str(browseURL_count) + ". In the URL: " + url)64 domain = urlparse(url).netloc65 client.new_har(domain)66 try:67 driver.get(url)68 time.sleep(7)69 except TimeoutException as e:70 print(url + ": Page load timeout or Invalid URL... moving to next URL !!!")71 except:72 print("May be 'Reached error page' occurred")73 result = client.har74 url_arr = []75 url_set = []76 j = 177 for entry in result['log']['entries']:78 _url = entry['request']['url']79 url_arr.append(_url)80 url_set = list(set(url_arr)) # Delete duplicate urls81 block_flag = "False"82 ad_count = 083 for x in file_list:84 for elem in url_set:85 try:86 block_flag = rules_dic[x].should_block(elem, {'script': True, 'image': True,87 'stylesheet': True, 'object': True,88 'xmlhttprequest': True, 'object-subrequest': True,89 'other': True, 'media': True, 'third-party': True})90 except:91 print("Rule error......")92 continue93 if block_flag:94 # print("Block: " + elem)95 block_result_file[j].write(elem + "\n")96 ad_count += 197 print(x + ": Block #" + str(ad_count))98 ad_count = 099 j += 1100 browseURL_count += 1101 for k in range(1, len(block_result_file)):102 block_result_file[k].close()103 server.stop()...
AdBlock(All_Platform).py
Source: AdBlock(All_Platform).py
1# 模çµåï¼æèéHARåæ廣å以èéAd URLsï¼éå
©è
åè½æéæå
©åç¨å¼ç¢¼æªæ¡2from adblockparser import AdblockRules3from urllib.parse import urlparse4import os5# Prepare rules6Path = "/home/kimbelly/DataSet/Filter_Lists/test/"7file_list = os.listdir(Path)8rules_dic = {}9for x in file_list:10 print("Prepare: " + x)11 with open(Path + x, 'rb') as blocklist_file:12 raw_rules = blocklist_file.read().decode('utf8').splitlines()13 rules_dic[x] = AdblockRules(raw_rules)14 blocklist_file.close()15# Read HAR file16HAR_file = open('/home/kimbelly/DataSet/Get_HAR_Files/AndroidVersion/HAR_Uniq_1.txt', 'r')17urls = HAR_file.read().splitlines()18HAR_file.close()19# For each filter list, start to block20print("=====================================================")21for x in file_list:22 print("Use " + x + " to block ads:")23 block_result_file = open("/home/kimbelly/Analysis/Block_Ads/AndroidVersion/Block_Ads_Uniq_1/" + x + "_BlockResult",24 'a+')25 ad_count = 026 for url in urls:27 block_flag = "False"28 try:29 block_flag = rules_dic[x].should_block(url, {'script': True, 'image': True, 'third-party': True,30 'stylesheet': True, 'object': True, 'media': True,31 'xmlhttprequest': True, 'object-subrequest': True,32 'other': True,33 'subdocument': True, 'background': True, 'xbl': True,34 'ping': True, 'dtd': True, 'collapse': True,35 'donottrack': True, 'websocket': True})36 except:37 print("Rule error......")38 continue39 if block_flag:40 block_result_file.write(url + "\n")41 ad_count += 142 print("Block: #" + str(ad_count))43 readMe_file = open("/home/kimbelly/Analysis/Block_Ads/AndroidVersion/Block_Ads_Uniq_1/ReadMe_1", 'a+')44 readMe_file.write(x + " block #" + str(ad_count) + '\n')45 block_result_file.close()46# Just test ~47'''with open("/home/kimbelly/DataSet/Filter_Lists/test/tmptest", 'rb') as blocklist_file:48 raw_rules = blocklist_file.read().decode('utf8').splitlines()49rules_dic = AdblockRules(raw_rules)50blocklist_file.close()51url = 'https://qq.com/ex?href=abc.com'52try:53 block_flag = rules_dic.should_block(url, {'script': True, 'image': True,'third-party': True,54 'stylesheet': True, 'object': True,'media': True,55 'xmlhttprequest': True, 'object-subrequest': True, 'other': True,56 'subdocument': True, 'background': True, 'xbl': True,57 'ping': True, 'dtd': True, 'collapse': True,58 'donottrack': True, 'websocket': True})59 if block_flag:60 print("yes")61 else:62 print("no")63except:...
httpbin.py
Source: httpbin.py
1# -*- coding: utf-8 -*-2from scrapy_zenscrape import ZenscrapeRequest3from scrapy import Spider4from httpbin.items import HttpbinItem5class HttpbinSpider(Spider):6 name = 'httpbin'7 start_urls = [8 'https://httpbin.org',9 'https://httpbin.org/headers?json',10 ]11 def start_requests(self):12 for url in self.start_urls:13 yield ZenscrapeRequest(url, params={14 # 'render': False,15 # 'block_ads': True,16 # 'block_resources': False,17 # 'premium': True,18 # 'location': 'fr',19 # 'wait_for': 5,20 # 'wait_for_css': '#swagger-ui',21 }, headers={22 # 'Accept-Language': 'En-US',23 }, cookies={24 # 'name_1': 'value_1',25 })26 def parse(self, response):27 body = response.body.decode(response.encoding)28 return HttpbinItem(29 url=response.url,30 status=response.status,31 body=body,32 headers=response.headers,...
Check out the latest blogs from LambdaTest on this topic:
The QA testing profession requires both educational and long-term or experience-based learning. One can learn the basics from certification courses and exams, boot camp courses, and college-level courses where available. However, developing instinctive and practical skills works best when built with work experience.
Ever since the Internet was invented, web developers have searched for the most efficient ways to display content on web browsers.
In general, software testers have a challenging job. Software testing is frequently the final significant activity undertaken prior to actually delivering a product. Since the terms “software” and “late” are nearly synonymous, it is the testers that frequently catch the ire of the whole business as they try to test the software at the end. It is the testers who are under pressure to finish faster and deem the product “release candidate” before they have had enough opportunity to be comfortable. To make matters worse, if bugs are discovered in the product after it has been released, everyone looks to the testers and says, “Why didn’t you spot those bugs?” The testers did not cause the bugs, but they must bear some of the guilt for the bugs that were disclosed.
Xamarin is an open-source framework that offers cross-platform application development using the C# programming language. It helps to simplify your overall development and management of cross-platform software applications.
When software developers took years to create and introduce new products to the market is long gone. Users (or consumers) today are more eager to use their favorite applications with the latest bells and whistles. However, users today don’t have the patience to work around bugs, errors, and design flaws. People have less self-control, and if your product or application doesn’t make life easier for users, they’ll leave for a better solution.
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!