我使用Java中的GhostDriver处理Selenium和PhantomJS。 我做了一些正常工作的测试,但自上周以来,一些突然的错误阻止了工作,没有修改代码......
这是我使用的基本代码示例,并在上周之前工作:
//The imports
import com.thoughtworks.selenium.Selenium;
import org.openqa.selenium.phantomjs.PhantomJSDriver;
import org.openqa.selenium.phantomjs.PhantomJSDriverService;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebDriver;
import com.thoughtworks.selenium.webdriven.WebDriverBackedSelenium;
//The code
Selenium selenium;
String baseUrl = "http://www.url.com";
WebDriver driver;
DesiredCapabilities dCaps;
String phantom = "phantomjs-1.9.7-windows/phantomjs.exe";
dCaps = new DesiredCapabilities();
dCaps.setJavascriptEnabled(true);
dCaps.setCapability("takesScreenshot", true);
dCaps.setCapability(PhantomJSDriverService.PHANTOMJS_CLI_ARGS, new String[] {"--ignore-ssl-errors=true"});
dCaps.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY, phantom);
driver = new PhantomJSDriver(dCaps);
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
selenium = new WebDriverBackedSelenium(driver, baseUrl);
selenium.open(url);
selenium.type("name=element", "example");
selenium.click("name=Send");
selenium.waitForPageToLoad("30000");
driver.quit();
selenium.stop();
我可以单独使用Selenium,它可以工作......(有和没有代理) 我可以单独使用PhantomJS,它可以工作......
但是当我在GhostDriver中使用这两个时(因此,仅从上周开始)我有两个问题:
我理解元素不存在或错误(我每次控制都没有错误)...可能是页面未正确加载... 我无法使用屏幕截图来查看问题:我只有黑屏......
我实际上正在添加有关等待和控制的代码,如果元素存在哪种方式不同......但暂时没有任何改变:
我开始尝试使用selector和selenium.waitForFrameToLoad()的driver.findElement()...
我尝试删除PhantomJS并替换为FirefoxDriver,它有效...... 我试图评论或不评论dCaps或驱动程序的部分......没有任何作用......
我知道PhantomJS / GhostDriver似乎是个问题...但我不明白!
选择器有问题吗? 是否有使用等待和控制代码的特定方法? 可能是我犯了错误? 我忘了重要的事吗? 问题为什么现在才出现,没有变化?