多测师是一家拥有先进的教学理念,强大的师资团队,业内好评甚多的接口自动化测试培训机构!

17727591462

联系电话

您现在所在位置:接口自动化测试培训 > 新闻资讯

如何在Selenium中设置代理IP-自动化测试

更新时间:2022-04-19 09:03:08 作者:多测师 浏览:56

  Firefox中设置代理ip

  method_1

  from selenium import webdriver

  profile = webdriver.FirefoxProfile()

  profile.set_preference('network.proxy.type', 1)

  profile.set_preference('network.proxy.http', '127.0.0.1')

  profile.set_preference('network.proxy.http_port', 17890) # int

  profile.update_preferences()

  driver = webdriver.Firefox(firefox_profile=profile)

  driver.get('http://httpbin.org/ip')

如何在Selenium中设置代理IP-自动化测试

  method_2

  from selenium import webdriver

  from selenium.webdriver.common.proxy import Proxy

  from selenium.webdriver.common.proxy import ProxyType

  proxy = Proxy(

  {

  # 'proxyType': ProxyType.MANUAL, # 用不用都行

  'httpProxy': get_proxy_ip_port()

  }

  )

  driver = webdriver.Firefox(proxy=proxy)

  driver.get('http://httpbin.org/ip')

  phantomjs中设置代理ip

  方法一:太不优雅(还是看方法二吧)

  在phantomjs中不能像上面的Firefox的method2一样传入proxy

  phantomjs和Firefox均继承自WebDriver,父类WebDriver可以传入proxy

  phantomjs在初始化WebDriver时就没有留proxy参数

  所以可以改一下phantomjs类的源码,就可以在phantomjs中传入proxy参数了

  # 注意授权

  # Licensed to the Software Freedom Conservancy (SFC) under one

  # or more contributor license agreements. See the NOTICE file

  # distributed with this work for additional information

  # regarding copyright ownership. The SFC licenses this file

  # to you under the Apache License, Version 2.0 (the

  # "License"); you may not use this file except in compliance

  # with the License. You may obtain a copy of the License at

  #

  # http://www.apache.org/licenses/LICENSE-2.0

  #

  # Unless required by applicable law or agreed to in writing,

  # software distributed under the License is distributed on an

  # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

  # KIND, either express or implied. See the License for the

  # specific language governing permissions and limitations

  # under the License.

  下面才是示例

  from selenium import webdriver

  from selenium.webdriver.common.proxy import Proxy

  from selenium.webdriver.common.proxy import ProxyType

  proxy = Proxy(

  {

  'proxyType': ProxyType.MANUAL,

  'httpProxy': get_proxy_ip_port()

  }

  )

  driver = webdriver.PhantomJS(

  executable_path="/path/of/phantomjs",

  proxy=proxy

  )

  driver.get('http://httpbin.org/ip')

  print driver.page_source

  driver.close()

  方法二:

  from selenium import webdriver

  from selenium.webdriver.common.proxy import Proxy

  from selenium.webdriver.common.proxy import ProxyType

  proxy = Proxy(

  {

  'proxyType': ProxyType.MANUAL,

  'httpProxy': 'ip:port' # 代理ip和端口

  }

  )

  # 新建一个“期望技能”,哈哈

  desired_capabilities = DesiredCapabilities.PHANTOMJS.copy()

  # 把代理ip加入到技能中

  proxy.add_to_capabilities(desired_capabilities)

  driver = webdriver.PhantomJS(

  executable_path="/path/of/phantomjs",

  desired_capabilities=desired_capabilities

  )

  driver.get('http://httpbin.org/ip')

  print driver.page_source

  driver.close()

  方法三(动态切换ip):

  from selenium import webdriver

  from selenium.webdriver.common.proxy import Proxy

  from selenium.webdriver.common.proxy import ProxyType

  proxy = Proxy(

  {

  'proxyType': ProxyType.MANUAL,

  'httpProxy': 'ip:port' # 代理ip和端口

  }

  )

  # 新建一个“期望技能”,哈哈

  desired_capabilities = DesiredCapabilities.PHANTOMJS.copy()

  # 把代理ip加入到技能中

  proxy.add_to_capabilities(desired_capabilities)

  driver = webdriver.PhantomJS(

  executable_path="/path/of/phantomjs",

  desired_capabilities=desired_capabilities

  )

  # 测试一下

  driver.get('http://httpbin.org/ip')

  print driver.page_source

  # 现在开始切换ip

  # 再新建一个ip

  proxy = Proxy(

  {

  'proxyType': ProxyType.MANUAL,

  'httpProxy': 'ip:port' # 代理ip和端口

  }

  )

  # 再新建一个“期望技能”,()

  desired_capabilities = DesiredCapabilities.PHANTOMJS.copy()

  # 把代理ip加入到技能中

  proxy.add_to_capabilities(desired_capabilities)

  # 新建一个会话,并把技能传入

  driver.start_session(desired_capabilities)

  driver.get('http://httpbin.org/ip')

  print driver.page_source

  driver.close()

  以上内容为大家介绍了自动化测试中的如何在Selenium中设置代理IP,本文由多测师亲自撰写,希望对大家有所帮助。了解更多自动化测试相关知识:https://www.aichudan.com/xwzx/

联系电话

17727591462

返回顶部