在pom.xml中加入如下依賴
<dependency>
<groupId>com.codeborne</groupId>
<artifactId>selenide</artifactId>
<version>4.4.1</version>
<scope>test</scope>
</dependency>
常用配置:
- selenide默認(rèn)使用Firefox瀏覽器,如何切換成chrome瀏覽器?
System.setProperty("webdriver.chrome.driver", driverPath);
Configuration.browser="chrome";
- selenide如何設(shè)置代理?
Proxy proxy = new Proxy();
proxy.setHttpProxy("127.0.0.1:8080");
WebDriverRunner.setProxy(proxy);
- selenide如何修改報(bào)告默認(rèn)生成路徑?
Configuration.reportsFolder = "target/reports/test"+Configuration.browser;
- selenide如何下載非
<a>標(biāo)簽的文件?
//默認(rèn)值是FileDownloadMode.HTTPGET,此值只用作用于<a>標(biāo)簽
Configuration.fileDownload = FileDownloadMode.PROXY;
- 如何保持瀏覽器運(yùn)行完不關(guān)閉?
//默認(rèn)值是false
Configuration.holdBrowserOpen = true;
- 如何使用自己實(shí)例化的
driver?
WebDriverRunner.setWebDriver(driver);
此處需要注意,如果使用自己設(shè)置的
driver,selenide不會自動關(guān)閉brower,需要我們手動關(guān)閉!
常見操作:
- 打開一個(gè)url:
open("https://www.baidu.com/");
- 鼠標(biāo)點(diǎn)擊:
//默認(rèn)使用css selector的方式來查找元素
Selenide.$(element).click();
Selenide.$(By.xpath(element)).click();
- 文本框賦值:
Selenide.$(By.xpath(element)).doubleClick(); - 鼠標(biāo)事件:
Selenide.$(By.xpath(element)).contextClick(); - 鼠標(biāo)右鍵事件:
Selenide.$(By.xpath(element)).setValue(value); - 判斷元素是否存在:
Selenide.$(By.xpath(element)).exists(); - 下載文件的操作:
Selenide.$(By.xpath(element)).download();
默認(rèn)只能下載
<a>標(biāo)簽的元素
若想下載其他標(biāo)簽里面的元素則需另外設(shè)置
- 上傳文件的操作:
Selenide.$(By.xpath(element)).uploadFile(file);
uploadFile的參數(shù)為File類型
- 查詢元素的文本內(nèi)容
Selenide.$(By.xpath(element)).text(); - 等待直到存在某個(gè)元素
Selenide.$(By.xpath(element)).waitUntil(exist , timeoutSeconds*1000); - 等待直到元素在頁面可見
Selenide.$(By.xpath(element)).waitUntil(visible , timeoutSeconds*1000); - 等待直到滿足兩個(gè)條件中的任意一個(gè),就相當(dāng)于
if(a || b){}這種寫法,第一個(gè)參數(shù)是備注
Selenide.$(By.xpath(element)).waitUntil(or("有一個(gè)相等", text(param1), text(param2)) , timeoutSeconds*1000); - 等待直到某個(gè)元素不存在
Selenide.$(By.xpath(element)).waitUntil(hidden, timeoutSeconds*1000); - 等待直到匹配到文本內(nèi)容
Selenide.$(By.xpath(element)).waitUntil(matchesText(text),timeoutSeconds*1000)
此處matchesText里面可以匹配正則表達(dá)式
- 不存在某個(gè)元素
Selenide.$(By.xpath(element)).shouldNot(exist); - 移動鼠標(biāo)到某個(gè)元素上
Selenide.$(By.xpath(element)).hover() - 獲取當(dāng)前頁面title
Selenide.title() - 獲取當(dāng)前頁面url
WebDriverRunner.url() - 切換到另一個(gè)頁面
Selenide.switchTo().window(nameOrHandle) - 獲取當(dāng)前driver
WebDriverRunner.getWebDriver(); - 清除瀏覽器cookie
Selenide.clearBrowserCookies(); - 刷新當(dāng)前頁面
Selenide.refresh(); - 出現(xiàn)alert時(shí)候出來情況
Selenide.confirm();
Selenide.dismiss();```