首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ChromeDriver在?

ChromeDriver在?
EN

Stack Overflow用户
提问于 2018-04-03 10:26:17
回答 1查看 96关注 0票数 0

我一直在用我的java程序中的facebook功能登录。我在跟踪本教程

在本教程中,为了打开Facebook登录页面,它需要包含一个特定项目文件夹的chromedriver。因为我使用的是casa上尉的框架,所以我做不到。它给了我一个错误

代码语言:javascript
复制
java.lang.IllegalStateException: The driver executable does not exist: C:\EnterpriseClientRISC\server\chromedriver.exe

但我不允许把铬放在那里。

有没有其他方法可以在不使用chromedriver的情况下将facebook登录页面弹出到另一个窗口?

我看到了其他教程合并了javascript,但我不允许在我的captain框架中这样做。

这是我的code>

代码语言:javascript
复制
try {
            Statusbar.outputSuccessWithPopup("before anything else").setLeftTopReferenceCentered();
            String domain = "https://dev-ecom.partnersbusiness.solutions/";
            String appId = "1830823116979050";

            String authUrl = "https://graph.facebook.com/oauth/authorize?type=user_agent&client_id="+appId+"&redirect_uri="+domain+"&scope=user_about_me,ads_management, ads_read email, pages_manage_cta, pages_show_list";


            //TODO SET CHROMEDRIVER HERE
            setNewProperty("webdriver.chrome.driver", "chromedriver.exe");

            WebDriver driver = new ChromeDriver() {
            };

            driver.get(authUrl);
            String accessToken;

            Statusbar.outputSuccessWithPopup("before while").setLeftTopReferenceCentered();

            //Note, wa kaabot after sa login here

            while (true){
                if (!driver.getCurrentUrl().contains("facebook.com")) {
                    String url = driver.getCurrentUrl();
                    accessToken = url.replaceAll(".*#access_token=(.+)&.*", "$1");

                    driver.quit();

                    FacebookClient fbClient = new DefaultFacebookClient(accessToken, Version.VERSION_2_6);

                    User user = fbClient.fetchObject("me", User.class);

                    setName("User: "+user.getName());

                    Statusbar.outputSuccessWithPopup("Welcome! Mr. "+user.getName()).setLeftTopReferenceCentered();
                }
            }
        }catch (Throwable t){
            t.printStackTrace();
        }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-03 10:29:20

使用铬驱动程序没有坏处,它只会帮助您完成工作,避免代码混乱。由于您无法在c驱动器中执行相同的操作,请将路径放置到任何其他驱动器,并在其中放置铬驱动程序exe。

您应该设置铬驱动程序exe路径如下所示。

setNewProperty(webdriver.chrome.driver,D:\some_dir\chromedriver.exe);

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

https://stackoverflow.com/questions/49627743

复制
相关文章

相似问题

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