- 获取启动路径(注意:使用 tab 键,不要手动输入)。
- 将启动路径配置到环境变量中。
# 举例,不要生搬硬套 exportPATH=$PATH:/Applications/Google\ Chrome.app/Contents/MacOS
复用已有浏览器-代码设置
Python 实现
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
option = Options()
option.debugger_address = "localhost:9222"
driver = webdriver.Chrome(options=option)
driver.implicitly_wait(10)
driver.get("https://work.weixin.qq.com/wework_admin/frame")
# 人工扫码
time.sleep(10)
# 点击通讯录
driver.find_element(By.XPATH,'//*[text()="通讯录"]').click()
Java 实现
importorg.junit.jupiter.api.AfterAll;
importorg.junit.jupiter.api.BeforeAll;
importorg.junit.jupiter.api.Test;
importorg.openqa.selenium.By;
importorg.openqa.selenium.WebDriver;
importorg.openqa.selenium.WebElement;
importorg.openqa.selenium.chrome.ChromeDriver;
importorg.openqa.selenium.chrome.ChromeOptions;
publicclass web_useAgainTest{
staticWebDriverdriver;
@BeforeAll
staticvoidsetup(){
ChromeOptionschromeOptions=newChromeOptions();
chromeOptions.setExperimentalOption("debuggerAddress","localhost:9222");
driver=newChromeDriver(chromeOptions);
}
@AfterAll
staticvoidteardown(){
driver.quit();
}
@Test
voidremote2()throwsInterruptedException{
driver.get("https://work.weixin.qq.com/wework_admin/frame");
//人工扫码
Thread.sleep(30000);
WebElementelement=driver.findElement(By.xpath("//*[@class ='index_service_cnt_itemWrap']"));
element.click();
Thread.sleep(1000);
}
}
使用复用浏览器,只需要扫码登陆一次,只要浏览器窗口不关闭,就可以一直使用,从而避免每次打开都需要扫码。
调试代码
Python 实现
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
option = Options()
option.debugger_address = "localhost:9222"
driver = webdriver.Chrome(options=option)
driver.implicitly_wait(10)
# driver.get("https://work.weixin.qq.com/wework_admin/frame")
# 人工扫码
# time.sleep(10)
# driver.find_element(By.XPATH,'//*[text()="通讯录"]').click()
# 点击添加成员
driver.find_elements(By.XPATH,'//*[text()="添加成员"]')[1].click()
Java 实现
importorg.junit.jupiter.api.AfterAll;
importorg.junit.jupiter.api.BeforeAll;
importorg.junit.jupiter.api.Test;
importorg.openqa.selenium.By;
importorg.openqa.selenium.WebDriver;
importorg.openqa.selenium.WebElement;
importorg.openqa.selenium.chrome.ChromeDriver;
importorg.openqa.selenium.chrome.ChromeOptions;
staticWebDriverdriver;
@BeforeAll
staticvoidsetup(){
ChromeOptionschromeOptions=newChromeOptions();
chromeOptions.setExperimentalOption("debuggerAddress","localhost:9222");
}
@AfterAll
staticvoidteardown(){
driver.quit();
}
@Test
voidremote2()throwsInterruptedException{
driver=newChromeDriver(chromeOptions);
WebElementelement=driver.findElement(By.xpath("//*[text()='添加成员'][1]"));
element.click();
Thread.sleep(1000);
}
如果需要在通讯录页面继续进行点击添加成员的操作,可以将打开界面和点击通讯录的操作注释,编写要进行的操作。
总结
复用浏览器是指在启动 selenium 程序时,浏览器不另外打开一个新的页面,而是直接使用现有的浏览器页面,并进行操作。