Firefox在运行Selenium脚本时会忽略全局自定义Firefox参数

时间:2019-02-11 21:57:37

标签: selenium firefox user-agent selenium-firefoxdriver incompatibletypeerror

这是我想要做的: 1.我有一个用例,需要在Firefox中更改默认的用户代理,然后转到站点进行检查。我知道何时使用正确的useragent,因为它不会显示验证码。

这是我正在实现这一目标的目标(根据本网站:https://www.howtogeek.com/113439/how-to-change-your-browsers-user-agent-without-installing-any-extensions/_): 1.创建一个新的全局Firefox变量:general.useragent.override,其值为“ Special_UA” 2.当我手动打开Firefox时,使用该变量,并且在打开站点时看不到验证码,我还可以通过wireshark / fiddler确认这一点

但是,当我尝试对Selenium执行相同操作时,我可以看到验证码,因为Firefox使用默认的Firefox UserAgent(已通过wireshark / fiddler确认),因此Selenium似乎在某种程度上无视了我创建的全局变量。

这是我的pom:

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>Automation</groupId>
  <artifactId>SeleniumAutomation</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <dependencies>
  <!-- Selenium -->
  <dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>3.141.59</version>
</dependency>
  <!-- TestNG -->
  <dependency>
     <groupId>org.testng</groupId>
     <artifactId>testng</artifactId>
     <version>6.8</version>
     <scope>compile</scope>
  </dependency>	
  <dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-ie-driver</artifactId>
    <version>3.12.0</version>
</dependency>
<dependency>
    <groupId>io.github.seleniumquery</groupId>
    <artifactId>seleniumquery</artifactId>
    <version>0.20.0</version>
</dependency>
<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-remote-driver</artifactId>
    <version>3.141.59</version>
</dependency>
<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-firefox-driver</artifactId>
    <version>3.141.59</version>
</dependency>
</dependencies>
</project>

这是我的代码:

@BeforeClass(alwaysRun = true)
	public void setUp() throws Exception {
				driver = new FirefoxDriver();
		driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
	}

	@Test
	public void TestCase() throws Exception {
		driver.get("https://samplesite.com/a.action");
    
    }
    

0 个答案:

没有答案