首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >无需进入由selenium - Java自动化的QR - Whatsapp web

无需进入由selenium - Java自动化的QR - Whatsapp web
EN

Stack Overflow用户
提问于 2018-04-14 21:25:46
回答 3查看 6.5K关注 0票数 9

我正在尝试在first之后消除二维码的处理。

我通过web驱动程序运行Whatsapp的代码:

代码语言:javascript
复制
public class DriverTester {

public static void main(String[] args) {

    DesiredCapabilities capabilities = DesiredCapabilities.chrome();
    capabilities.setCapability(CapabilityType.UNEXPECTED_ALERT_BEHAVIOUR, UnexpectedAlertBehaviour.IGNORE);
    ChromeDriverService service = new ChromeDriverService.Builder()
            .usingDriverExecutable(new File("C:\\whatsup\\src\\main\\resources\\chromedriver.exe"))
            .usingAnyFreePort()
            .build();

    ChromeOptions options = new ChromeOptions();
    options.merge(capabilities);
    ChromeDriver driver = new ChromeDriver(service, options);

    driver.navigate().to("https://web.whatsapp.com/");

    while (driver.findElements(By.xpath(XPaths.autoStartReady)).size() == 0);

    LocalStorage localStorage = driver.getLocalStorage();

    driver.close();

    driver = new ChromeDriver(service, options);

    for (String key : localStorage.keySet()){
        String value = localStorage.getItem(key);
        driver.executeScript("window.localStorage.setItem('"+key+"', '"+value+"');");
    }

    driver.navigate().to("https://web.whatsapp.com/");

}

}

当web浏览器第一次打开时,我正在手机上执行二维码例程。执行javascript代码时引发异常。

但是我得到了下一个例外:

代码语言:javascript
复制
Exception in thread "main" org.openqa.selenium.NoSuchSessionException: no such session

如果我试图保存cookie,cookie集是空的(不能保存任何cookie,仍然不知道为什么)。

如何在第一次之后跳过QR的这个过程?如果有人知道如何跳过它,甚至不做一次,这也是有帮助的(但我认为现在太难了)。

提前感谢!

EN

回答 3

Stack Overflow用户

发布于 2018-08-09 08:15:05

使用配置文件!

代码语言:javascript
复制
from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument(r"user-data-dir=D:\Python\Memory\WebWhatsAppBot")

navegador = webdriver.Chrome(
executable_path="D:\Python\WebWhatsAppBot\chromedriver.exe", chrome_options=options)
navegador.get("https://web.whatsapp.com/")
票数 12
EN

Stack Overflow用户

发布于 2020-07-24 00:54:50

Marcelo的答案是正确的,但在我看来解释得很糟糕,所以我的答案是:

在项目目录中创建一个文件夹来存储chromedriver会话将创建的所有缓存(忽略.gitignore文件中的内容也很好)。

然后,启动webdriver选项并设置目录。

代码语言:javascript
复制
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.keys import Keys
import time

options = webdriver.ChromeOptions()
options.add_argument(r"user-data-dir=./driver/data")
driver = webdriver.Chrome(executable_path=r'./driver/chromedrive84_win', options=options)
driver.get('https://web.whatsapp.com/')
票数 1
EN

Stack Overflow用户

发布于 2019-02-03 15:53:47

如果您没有使用过,可以在第一次尝试后跳过二维码扫描

代码语言:javascript
复制
ChromeOptions options = new ChromeOptions();
options.addArguments("--incognito"); 
options.addArguments("--no-sandbox");

在删除--incognito type选项之后

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49831933

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档