问题描述
我在Win上安装了Safari浏览器,并安装了网络驱动程序,并遵循Safari的JSR223中的代码:
import org.openqa.selenium.safari.SafariOptions;
import org.openqa.selenium.safari.SafariDriver;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.webdriverwait;
import java.util.concurrent.TimeUnit;
Map<String,Object> mobileEmulation = new HashMap<>();
mobileEmulation.put("userAgent","vars.get("userAgent")");
Map<String,Object> safariOptions = new HashMap<>();
safariOptions.put("mobileEmulation",mobileEmulation);
SafariOptions safari = new SafariOptions();
options.setExperimentalOption("mobileEmulation",mobileEmulation);
SafariDriver driver = new SafariDriver(options);
driver.get("url");
webdriverwait wait = new webdriverwait(driver,20);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("xpath")));
driver.findElement(By.xpath("xpath")).click();
vars.putObject("driver",driver);
错误消息如下:
Response code:500
Response message:javax.script.ScriptException: org.codehaus.groovy.control.MultipleCompilationErrorsException: startup Failed:
Script19.groovy: 2: unable to resolve class org.openqa.selenium.safari.SafariOptions
@ line 2,column 1.
import org.openqa.selenium.safari.SafariOptions;
^
Script19.groovy: 3: unable to resolve class org.openqa.selenium.safari.SafariDriver
@ line 3,column 1.
import org.openqa.selenium.safari.SafariDriver;
^
2 errors
您能帮我找到我所缺少的吗?
解决方法
关于该错误,您似乎在selenium-safari-driver下没有JMeter Classpath,因此需要下载相应的.jar,将其拖放到您的“ lib”文件夹中安装JMeter并重新启动JMeter以选择库。
关于“ Win上的Safari浏览器”节,您绝对确定要执行此操作吗? Windows版本的Safari EOL was in 2012,我认为您不应该投资于8岁浏览器的自动化测试。
展望未来,我认为这句话:
mobileEmulation.put("userAgent","vars.get("userAgent")");
应如下所示:
mobileEmulation.put("userAgent",vars.get("userAgent"));
如果您需要模拟不同的浏览器进行性能测试,我也看不到JMeter的有效用例-您可以使用User-Agent轻松发送相关的HTTP Header Manager标头并进行加载使用普通的JMeter的HTTP Request采样器,并且如果您只是创建自动化测试-您根本不需要JMeter