我正在自动化一个测试用例,其中我单击位桶上的“添加 key ”按钮并打开弹出窗口,如下图所示:
当我在 Linux AWS 上使用 jenkins 运行我的脚本时,不知怎的,这个弹出窗口没有打开。
我正在使用 Selenium Webdriver、Java、Chrome Headless 和 maven。
这是我在 chrome headless 代码中的设置:
HashMap<String, Object> chromePrefs = new HashMap<String, Object>();
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("prefs", chromePrefs);
DesiredCapabilities cap = DesiredCapabilities.chrome();
cap.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
cap.setCapability(ChromeOptions.CAPABILITY, options);
chromePath = System.getProperty("user.dir") + prop.getProperty("chromeDriverPath");
System.setProperty("webdriver.chrome.driver", chromePath);
options.addArguments("--headless");
options.addArguments("--start-maximized");
options.addArguments("--window-size=1366,768");
options.addArguments("--no-sandbox");
options.addArguments("--disable-dev-shm-usage");
options.addArguments("--disable-gpu");
options.addArguments("--dns-prefetch-disable");
options.addArguments("--always-authorize-plugins");
options.addArguments("enable-automation");
options.addArguments("--disable-browser-side-navigation");
options.setPageLoadStrategy(PageLoadStrategy.NONE);
driver = new ChromeDriver(options);
我是否遗漏了任何其他可以帮助我解决此问题的论据?
单击并打开弹出窗口的按钮的 HTML 代码:
<div class="buttons">
<button class="aui-button aui-button-primary" id="add-key" resolved="">Add key</button>
</div>
Html 屏幕截图:
最佳答案
根据您共享的 HTML 来调用 click()
在文本为 Add key 的元素上,您可以使用以下解决方案:
似乎某些元素是动态生成的,理想情况下而不是
PageLoadStrategy.NONE
您需要使用PageLoadStrategy.NORMAL
如下:options.setPageLoadStrategy(PageLoadStrategy.NORMAL);
诱导WebDriverWait使元素可点击,如下所示:
CSS_SELECTOR
:new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("button.aui-button.aui-button-primary#add-key"))).click();
XPATH
:new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//button[@class='aui-button aui-button-primary' and @id='add-key'][text()='Add key']"))).click();
关于java - 在 Linux 上点击 chrome headless 按钮时弹出窗口未打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53475696/