这是我想要做的: 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");
}