首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Selenium登录到WebEx平台

如何使用Selenium登录到WebEx平台
EN

Stack Overflow用户
提问于 2020-04-08 15:51:24
回答 1查看 525关注 0票数 0

我无法登录到WebEx平台,而且我需要能够登录到WebEx来刮掉安排在一周内的会议。我一直得到回溯,但我甚至不能对登录容器上的透视图登录表单使用send.keys()方法。最重要的是,我有一个问题,只是自动控制。我需要能够登录,以便能够解析和查看当前的周计划。

您可以在这里看到代码:https://github.com/Richard-Barrett/ITAdminInfra/blob/master/Integrations/WebEx/list_meetings.py

不起作用的代码是:

代码语言:javascript
复制
#browser.switchTo.frame("topframeset")
#browser.switch_to.frame("main")

# Authentication
# Credentials NEEDS UNIT TEST
username = WebDriverWait(browser, delay).until(EC.presence_of_element_located((By.ID, 'mwx-ipt-username')))
#utente = browser.find_element_by_id("mwx-ipt-username").send_keys('user@gestione.eu')
password = WebDriverWait(browser, delay).until(EC.presence_of_element_located((By.ID, 'mwx-ipt-password')))
username.send_keys(config['user']['username'])
password.send_keys(config['user']['password'])

# Authentication submit.click()
# For XPATH = //*[@id='mwx-btn-logon']
element = WebDriverWait(browser, 20).until(
                EC.element_to_be_clickable((By.XPATH, "//*[@id='mwx-btn-logon']")))
element.click();
print("Logging into Mirantis WebEx System!")

以下是页面来源:

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en-US">
<HEAD>
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
<meta name='robots' content='noindex,nofollow'>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta name='format-detection' content='telephone=no'>
<meta name='slack-app-id' content='A5P5FDK33'>
<meta name="description" content="15"><link rel="shortcut icon" href="/favicont29.ico" type="image/x-icon">

<TITLE>MIRANTIS INC WebEx Enterprise Site</TITLE>
<meta http-equiv="Pragma" content="no-cache">


<meta property="og:type" content="website" />
<meta property="og:title" content="Cisco Webex Meetings" />
<meta property="og:description" content="Simple, modern video meetings for the global workforce. Join from anywhere, including your desktop, browser, mobile device, or video room device." />
<meta property="og:image" content="https://mirantis.webex.com/mw3300/mywebex/html/img/webexball_opengraph.png" />
<meta property="og:site_name" content="Cisco Webex Site" />
<meta property="og:url" content="https://mirantis.webex.com/" />
<script language="JavaScript">
function setCookie(name,value) 
{ 
    var Days = 30; 
    var exp = new Date(); 
    exp.setTime(exp.getTime() + Days*24*60*60*1000); 
    document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString()+";path=/"; 
} 


function getCookie(Name)
{


    var search = Name + "=";
    if (document.cookie.length > 0)
    { // if there are any cookies
        offset = document.cookie.indexOf(search);
        if (offset != -1)
        { // if cookie exists
            offset += search.length; // set index of beginning of value
             end = document.cookie.indexOf(";", offset); // set index of end of cookie value
             if (end == -1)
                 end = document.cookie.length;
            return unescape(document.cookie.substring(offset, end));
        }
    }
}
  //default page should never load inside of another frame
  if (top.location != self.location) {
    top.location = self.location;
  }



var oneDay= 1*24*60*60*1000;
var expDate = new Date();
expDate.setTime (expDate.getTime() + oneDay);
var cookieExpires = expDate.toGMTString();

document.cookie="verifyCookie=test; expires="+cookieExpires

if (document.cookie.length<=0 || getCookie("verifyCookie") == null){
    window.open('https://mirantis.webex.com/mw3300/mywebex/jsp/common/warningnote.jsp?siteurl=mirantis', 'Warning', 'toolbar=no,menubar=no,status=no,scrollbars=auto,resizable=yes,width=300,height=220');
}

document.cookie="verifyCookie=CLEAR; expires=Sun, 09-Nov-97 01:00:00 GMT";
try{
    if('&#47;mw3300&#47;mywebex&#47;login&#47;login.do&#63;siteurl&#61;mirantis&#38;viewFrom&#61;modern&#38;login_return_url&#61;https&#37;3A&#37;2F&#37;2Fmirantis.webex.com&#37;2Fwebappng&#37;2Fsites&#37;2Fmirantis&#37;2Fdashboard&#37;3Fsiteurl&#37;3Dmirantis&#38;rnd&#61;0.4396788955860299'.indexOf("meetinginfo")!=-1||( '&#47;mw3300&#47;mywebex&#47;login&#47;login.do&#63;siteurl&#61;mirantis&#38;viewFrom&#61;modern&#38;login_return_url&#61;https&#37;3A&#37;2F&#37;2Fmirantis.webex.com&#37;2Fwebappng&#37;2Fsites&#37;2Fmirantis&#37;2Fdashboard&#37;3Fsiteurl&#37;3Dmirantis&#38;rnd&#61;0.4396788955860299'.indexOf("e.do")!=-1&&'&#47;mw3300&#47;mywebex&#47;login&#47;login.do&#63;siteurl&#61;mirantis&#38;viewFrom&#61;modern&#38;login_return_url&#61;https&#37;3A&#37;2F&#37;2Fmirantis.webex.com&#37;2Fwebappng&#37;2Fsites&#37;2Fmirantis&#37;2Fdashboard&#37;3Fsiteurl&#37;3Dmirantis&#38;rnd&#61;0.4396788955860299'.indexOf("siteurl")!=-1)&&'&#47;mw3300&#47;mywebex&#47;login&#47;login.do&#63;siteurl&#61;mirantis&#38;viewFrom&#61;modern&#38;login_return_url&#61;https&#37;3A&#37;2F&#37;2Fmirantis.webex.com&#37;2Fwebappng&#37;2Fsites&#37;2Fmirantis&#37;2Fdashboard&#37;3Fsiteurl&#37;3Dmirantis&#38;rnd&#61;0.4396788955860299'.indexOf("landingpage.do")==-1&&'&#47;mw3300&#47;mywebex&#47;login&#47;login.do&#63;siteurl&#61;mirantis&#38;viewFrom&#61;modern&#38;login_return_url&#61;https&#37;3A&#37;2F&#37;2Fmirantis.webex.com&#37;2Fwebappng&#37;2Fsites&#37;2Fmirantis&#37;2Fdashboard&#37;3Fsiteurl&#37;3Dmirantis&#38;rnd&#61;0.4396788955860299'.indexOf("mainframe.do")==-1&&'&#47;mw3300&#47;mywebex&#47;login&#47;login.do&#63;siteurl&#61;mirantis&#38;viewFrom&#61;modern&#38;login_return_url&#61;https&#37;3A&#37;2F&#37;2Fmirantis.webex.com&#37;2Fwebappng&#37;2Fsites&#37;2Fmirantis&#37;2Fdashboard&#37;3Fsiteurl&#37;3Dmirantis&#38;rnd&#61;0.4396788955860299'.indexOf("mywebex")==-1&&'&#47;mw3300&#47;mywebex&#47;login&#47;login.do&#63;siteurl&#61;mirantis&#38;viewFrom&#61;modern&#38;login_return_url&#61;https&#37;3A&#37;2F&#37;2Fmirantis.webex.com&#37;2Fwebappng&#37;2Fsites&#37;2Fmirantis&#37;2Fdashboard&#37;3Fsiteurl&#37;3Dmirantis&#38;rnd&#61;0.4396788955860299'.indexOf("frame.do")==-1){
        setCookie("jmtlogloginclicktime",new Date().getTime());
    }
}catch(ex){

}


    var dom = document.getElementById ? 1 : 0;
    var ns4 = (document.layers && !dom ) ? 1 : 0;
    // do for ns4 resize problem
    function mm_reloadPage(init) {  //reloads the window if Nav4 resized
        if (init==true) {
            with (navigator) {
                if ((appName=="Netscape") && (parseInt(appVersion)==4)) {
                    document.mm_pgW=innerWidth;
                    document.mm_pgH=innerHeight;
                    onresize=mm_reloadPage;
                }
            }
        } else if (innerWidth!=document.mm_pgW || innerHeight!=document.mm_pgH) {
            location.reload();
        }
    }
    if(ns4)
        mm_reloadPage(true);


document.cookie = "screenWidth=" + screen.width + "; path=/; secure";

function closeWindow() {
    window.close(opener=0);
}
function submitChildFrame(){
    window.frames["mainFrame"].postChildForm("\x2fmw3300\x2fmywebex\x2flogin\x2flogin.do\x3fsiteurl\x3dmirantis\x26viewFrom\x3dmodern\x26login_return_url\x3dhttps\x253A\x252F\x252Fmirantis.webex.com\x252Fwebappng\x252Fsites\x252Fmirantis\x252Fdashboard\x253Fsiteurl\x253Dmirantis\x26rnd\x3d0.4396788955860299");
}
function submitChildFrame4Header(){
    window.frames["header"].postChildForm4Logout();
}
</script>


<base href="https://mirantis.webex.com/mw3300/mywebex/jsp/frame/mywebex.jsp">
</HEAD>

<!-- CDN Host: akamaicdn.webex.com Status: OK -->

<FRAMESET id="topframeset" BORDER=0 FRAMEBORDER=0 FRAMESPACING=0 ROWS="131,*,0">
    <FRAME SCROLLING="auto"  NORESIZE NAME="header" SRC="/mw3300/mywebex/header.do?service=1&siteurl=mirantis&viewFrom=modern&rnd=0.738597730304002" title="The header frame of Cisco WebEx Meetings">


        <FRAME SCROLLING="auto" NORESIZE NAME="mainFrame" SRC="&#47;mw3300&#47;mywebex&#47;login&#47;login.do&#63;siteurl&#61;mirantis&#38;viewFrom&#61;modern&#38;login_return_url&#61;https&#37;3A&#37;2F&#37;2Fmirantis.webex.com&#37;2Fwebappng&#37;2Fsites&#37;2Fmirantis&#37;2Fdashboard&#37;3Fsiteurl&#37;3Dmirantis&#38;rnd&#61;0.4396788955860299" target="_top" title="The content frame of Cisco WebEx Meetings">

    <FRAME SCROLLING="no"  NORESIZE NAME="rotation" SRC="/mw3300/mywebex/frame/clientpath.do?siteurl=mirantis" title="The clientPath frame of Cisco WebEx Meetings">
</FRAMESET>



<noframes>
<h2>Sorry.</h2>
&nbsp;<p><b>Webex requires the use of Netscape Navigator 4.0, Internet Explorer 4.0 or better.</b></p>
</noframes>
</html>

我做错了什么吗?我试着切换到框架本身,我从来没有遇到过这样的情况,在那里,我无法登录。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-08 16:17:14

元素存在于iframe名称mainFrame中,您需要首先切换它。诱导WebDriverWait()和frame_to_be_available_and_switch_to_it()和iframe名称

代码在这里:

代码语言:javascript
复制
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC

browser=webdriver.Chrome("path here")
url = "https://mirantis.webex.com"
browser.get(url)
element = WebDriverWait(browser, 20).until(EC.element_to_be_clickable((By.XPATH, "//*[@id='guest_signin_button']")))
element.click();
WebDriverWait(browser,20).until(EC.frame_to_be_available_and_switch_to_it((By.NAME,"mainFrame")))
username = WebDriverWait(browser, 5).until(EC.element_to_be_clickable((By.ID, 'mwx-ipt-username')))
username.send_keys("user@abc.com")
password = WebDriverWait(browser, 5).until(EC.element_to_be_clickable((By.ID, 'mwx-ipt-password')))
password.send_keys("userabc")

浏览器快照:

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

https://stackoverflow.com/questions/61104794

复制
相关文章

相似问题

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