我在firefox中使用SeleniumWebDriver。我想知道是否有一个设置,我可以改变,使它只要求从某些领域的资源。(特别是我希望它只请求与网页本身位于同一域的内容)。
用Python编写的当前设置是:
from selenium import webdriver
firefox_profile = webdriver.FirefoxProfile()
## Here, I change various default setting in Firefox, and install a couple of monitoring extensions
driver = webdriver.Firefox(firefox_profile)
driver.get(web_address)
我想做的是,如果我指定的网络地址wwww.domain.com
,然后只加载domain.com
提供的内容,而不是例如所有由其他域托管的跟踪内容通常会被请求。希望可以通过修改火狐中的配置文件设置或扩展来实现。
注意-有一个类似的问题(没有答案)-将Selenium/Webdriver/HtmlUnit限制在某个特定的领域-但它已经有四年的历史了,我认为Selenium从那时起已经进化了很多。
我认为这在硒中仍然是不可能的。但您仍然可以通过使用browsermob等代理来实现这一点。Webdriver与browsermob代理集成良好。
java中的伪代码示例
//LittleProxy-powered 2.1.0 release
LegacyProxyServer server = new BrowserMobProxyServer();
server.start(0);
// Blacklist websites
server.blacklistRequests("https?://.*\\.blocksite\\.com/.*", 410);//these sites will be blocked
/// get the Selenium proxy object
Proxy proxy = ClientUtil.createSeleniumProxy(server);
// configure it as a desired capability
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(CapabilityType.PROXY, proxy);
// initialize the driver with the capabilities ;
Webdriver driver = new FirefoxDriver(capabilities);
希望这对你有帮助。如果你需要进一步的帮助请回来
多亏了Vicky(我遵循了Vicky使用代理设置的方法——尽管是直接从Selenium获得的),下面的代码将更改firefox中的代理设置,使其不会连接到除白名单上的域之外的域。
我怀疑一些设置更改是不必要的,在大多数情况下可以忽略。用Python编写代码。
from selenium import webdriver
firefox_profile = webdriver.FirefoxProfile()
## replace desired_domain.com below with whitelisted domain. Separate domains by comma.
firefox_profile.set_preference("network.proxy.no_proxies_on","localhost,127.0.0.1,desired_domain.com")
firefox_profile.set_preference("network.proxy.backup.ftp","0.0.0.0")
firefox_profile.set_preference("network.proxy.backup.ftp_port",1)
firefox_profile.set_preference("network.proxy.backup.socks","0.0.0.0")
firefox_profile.set_preference("network.proxy.backup.socks_port",1)
firefox_profile.set_preference("network.proxy.backup.ssl","0.0.0.0")
firefox_profile.set_preference("network.proxy.backup.ssl_port",1)
firefox_profile.set_preference("network.proxy.ftp","0.0.0.0")
firefox_profile.set_preference("network.proxy.ftp_port",1)
firefox_profile.set_preference("network.proxy.http","0.0.0.0")
firefox_profile.set_preference("network.proxy.http_port",1)
firefox_profile.set_preference("network.proxy.socks","0.0.0.0")
firefox_profile.set_preference("network.proxy.socks_port",1)
firefox_profile.set_preference("network.proxy.ssl","0.0.0.0")
firefox_profile.set_preference("network.proxy.ssl_port",1)
firefox_profile.set_preference("network.proxy.type",1)
firefox_profile.set_preference("network.proxy.share_proxy_settings",True)
driver = webdriver.Firefox(firefox_profile)
driver.get(web_address_desired)
问题内容: 这是此问题的后续操作- 想创建一个表单填充器-java,jsp,html是否足够?。我反复在网站上填写表格(例如,预约私人牙医)。 1-循环。对于每次迭代,除“下拉框-状态”的值外,所有数据均相同。 例如。每次迭代中“文本框-名称”,“文本框-年龄”保持不变。但是,状态下拉列表会在迭代中更改为NY,TX,CA。 2-如果最后一页中出现某些文本,请执行一项操作(发送邮件)。 我该如何做s
我正在开发Selenium,目前我有一个连接到两个运行linux和所有浏览器的虚拟机的集线器。 我能够启动浏览器,直到它突然停止。火狐或任何其他浏览器都不会启动。我得到以下错误。 45000 ms后无法连接到端口7055上的主机127.0.0.1。 我运行Selenium服务器独立2.26与火狐16.0.2. 请帮忙。
它说我需要白名单一个域,但我在控制台中找不到任何地方这样做,除了我创建的动态链接。我尝试运行下面的代码,但我得到 我不应该使用动态链接进行火警认证吗?如果是这样,我在控制台的什么地方白名单域,因为我找不到它。
我有一个关于使用无效证书通过https测试网站的问题。你能帮忙吗?我正在临时服务器上测试一个网站。它需要https,并且使用了无效的证书,该证书属于生产服务器。因此,当我访问该网站时,FireFox会显示“此连接不受信任页面”。我已经设法让firefox跳过页面;但是,如果我不使用Selenium(Python绑定)运行它,它将再次显示“Untrusted”页面。所以,我做了更多的研究,发现: h
我正试图在我的电脑中第一次使用硒。但是我在第一行有一个错误: 我的代码: 错误消息: 检查Selenium服务器版本:开始:预下载开始:下载开始:后下载检查chromedriver版本:开始:预下载开始:下载开始:后下载检查geckodriver版本:开始:预下载开始:下载开始:后下载检查phantomjs版本:开始:预下载开始:下载开始:后下载 [1]"连接到远程服务器"无法打开火狐浏览器。客户
在我的应用程序中,我可以使用IP地址连接到服务器,但当我尝试使用DNS主机名连接时,我无法通过Android emulator连接。在logcat中,我得到以下错误: 07-10 10:22:42.312:我/编导(848):跳过了45帧!应用程序可能在其主线程上做了太多工作。 07-10 10:24:00.181:我/编导(848):跳过了35帧!应用程序可能在其主线程上做了太多工作。 07-1