如何使用Selenium WebDriver/RC测试UI上展示的广告

3
如何测试在网页上显示的广告。这些广告是通过某些插件注入的。当我使用IDE进行记录时,它在Firefox浏览器上显示广告。但是当我从eclips运行webdriver selenium脚本时,它不会在selenium启动的浏览器页面上显示任何广告。如何解决这个问题?

1
要深入了解这个问题,你需要找出这些广告是如何创建的。这意味着,如果你可以访问源代码,就要查看它并弄清楚,或者与开发人员合作。一旦你知道网站在创建这些广告时采取的确切过程,就会有助于诊断为什么在使用Selenium时它不会显示出来。 - Arran
2个回答

4
默认情况下,Selenium使用的Firefox配置文件与您手动打开浏览器时使用的普通配置文件不同。因此,您使用普通配置文件添加的插件默认情况下对Selenium不可用。
因此,如果广告是由您安装的插件注入到页面中的,那么在没有插件的情况下使用Selenium打开FF时,您不会看到它们,这可以解释原因。
您可以通过按照以下步骤创建一个用于Selenium的配置文件:
  1. 确保关闭所有Firefox实例
  2. 单击“开始>运行”
  3. 键入firefox.exe -ProfileManager -no-remote
  4. 选择“创建配置文件”
  5. 单击“下一步”
  6. 输入新配置文件名称
  7. 选择一个目录文件夹以存储您的新配置文件
  8. 单击“完成”
  9. 选择“启动时不询问”
  10. 单击“启动Firefox”并配置您的设置
  11. 将配置文件设置回“默认”(在Selenium之外使用您的普通配置文件)
然后在Java中,设置您的驱动程序使用该配置文件-例如,如果您创建了一个名为“SELENIUM”的配置文件,则您的Java可能如下所示:
ProfilesIni profile = new ProfilesIni();
FirefoxProfile ffprofile = profile.getProfile("SELENIUM");
driver = new FirefoxDriver(ffprofile);

谢谢Pat,它起作用了。我没有创建新的配置文件,而是在Java程序中使用了默认配置文件。 - mdashu

2

我的测试经验:我在捷克共和国工作,为一家德国公司工作。该页面面向捷克受众,因此AdWords是针对捷克人制作的。

但是公司的防火墙位于德国,这意味着该页面认为我坐在德国,尽管我坐在布拉格。这也意味着没有广告向我展示。

长话短说:确保在运行Selenium和从浏览器运行时,您没有类似的问题...


Pavel,我没有这样的防火墙设置。当我手动浏览到该URL时,我可以看到广告正常显示。只有在Selenium RC启动的浏览器中才不显示广告。 - mdashu
我知道,但也许吧。也许浏览器告诉页面的数据与手动浏览时不同。我没有检查过,但这可能是发生在你身上的事情的合理解释... - Pavel Janicek

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接