使用 Selenium 从另一个框架中查找与下拉列表相关的元素 -- Python [英] Using Selenium to find elements related to drop down list from another frame -- Python

查看:99
本文介绍了使用 Selenium 从另一个框架中查找与下拉列表相关的元素 -- Python的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直在尝试编写一个程序来自动化我的工作.我的任务有一系列步骤,但我有一点被卡住了.我不断收到 NoSuchElementException.我曾尝试使用 Selenium 的 id、class、name 方法,但似乎没有任何效果.我现在的代码是这样的:

from selenium import webdriverfrom selenium.webdriver.common.by import Bybrowser = webdriver.Chrome('C:\\Users\\abc\\AppData\\Local\\Programs\\Python\\Python36\\chromedriver.exe')browser.get("http://example.com/login.aspx")usernameElem = browser.find_element_by_id('txtuser')usernameElem.send_keys('admin')passwordElem = browser.find_element_by_id('txtpassword')passwordElem.send_keys('密码')loginElem = browser.find_element_by_id('btn_login')loginElem.click() # 跟随在线阅读"链接browser.get("http://example.com/Reports.aspx")subscriberslistElem = browser.find_element_by_id('ContentPlaceHolder1_rptDC_lnk_0')订阅者列表Elem.click()browser.implicitly_wait(3)entityElem = browser.find_element_by_id("report_Entity_ClientState")打印(测试")entityElem.send_keys('Entity1')browser.implicitly_wait(3)reportElem = browser.find_element_by_class_name('selectbox')打印(测试2")reportElem.click()showdataElem = browser.find_element_by_id('btn_new')showdataElem.click()excelElem = browser.find_element_by_id('imgExport')excelElem.click()print('一切都好')

网页链接,完整文件.

奇怪的是,当我在线打开 HTML 文件作为代码并搜索report_Entity_ClientState"时没有结果.我试图访问的元素的图像:

第一个元素.

第二个元素.

实体和报表元素均未找到.以下部分代码返回错误.

entityElem = browser.find_element_by_id("report_Entity_ClientState")reportElem = browser.find_element_by_class_name('selectbox')entityElem.send_keys('Entity1')browser.implicitly_wait(3)

元素的 HTML 代码:

<html xmlns="http://www.w3.org/1999/xhtml"><head><title><style type="text/css">.rgDataDiv{高度:350px!重要;}#report2_demo1_dateInput, #report2_demo2_dateInput{背景:无重复滚动 0 0 #f0f3f4;边框:1px 实心 #4D87A5;边界半径:0.3em;颜色:#296872;字体系列:HelveticaNeue-Light"、Helvetica Neue Light"、Helvetica Neue"、Helvetica、Arial、Lucida Grande"、sans-serif;字体大小:14px;字体粗细:400;高度:1.8em;填充:0 0.3em;位置:相对;文本对齐:居中;文本阴影:1px 1px 0 #FFFFFF;}.选择框{宽度:175px;高度:27px;背景颜色:#FFF;边框:1px 实心 #b7b7b7;字体:400 12px/18px 'Open Sans' , sans-serif;颜色:#777;字体粗细:粗体;边框:1px 实心 #ccc;边距:0em 0.5em;填充:0em 0.5em;box-shadow: 0 0 1px rgba(0, 0, 0, 0.2);}.selectbox:悬停{边框:1px 实心 #1261ac !important;}.selectbox 选项{填充:5px;}.按钮{背景颜色:#23ad44;背景图像:线性渐变(到底部,#23ad44,#23ad44);边框:1px 实心 #23ad44;边框半径:3px;颜色:#ffffff;显示:内联块;字体系列:arial、helvetica、sans-serif;字体大小:12px;字体粗细:粗体;左边距:5px;填充:7px;文本对齐:居中;文字装饰:无;宽度:7em;}.button:悬停{背景颜色:#23ad44;背景图像:线性渐变(到底部,#23ad44,#23ad44);边框:1px 实心 #23ad44;}</风格><style type="text/css">#覆盖{背景色:#000000;高度:100%;左:0;不透明度:0.6;位置:固定;顶部:0;宽度:100%;z-索引:1500;}#进度{背景色:#000000;边框:0 实心#CCCCCC;高度:30px;行高:30px;不透明度:0.6;填充:10px;文本对齐:居中;宽度:300px;}#modalprogress{位置:绝对;顶部:45%;左:50%;边距:-11px 0 0 -150px;颜色:#990000;字体粗细:粗体;字体大小:14px;}.中继器标签{颜色:#2980b9;}</风格><link href="/WebResource.axd?d=YhrvG3mKYx0qi8zmG_e2lyIXyb_ANuRBo_sKLQFJLSvTN5PZ_1mAdbAu2oYdNj8IQ2baXlFznJaZLu1FNyX1Sw2&amp;t=630409&amp;sw2&amp;t=630409&amp;t=630409&amp;t=630409&amp;sheet_type&amp;t=630409&amp;t=630409<sheet.?d = pgzM84zOvBy03oK1BX9qj4AemgkqjvEpKd1DaZn3BmX7HYCaCPA9mDXES3WITAYhGWLhU3BijsiI-NqfoTxwKTiVY41t_WUGeTj39PR75xY1&放大器;放大器; T = 634968929080000000" 类型= 文本/CSS" 的rel = 样式表" 类= Telerik_stylesheet" ></头><身体><form method="post" action="Rep1_SubList.aspx" id="form1"><div class="aspNetHidden"><input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value=""><input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value=""><input type="hidden" name="__LASTFOCUS" id="__LASTFOCUS" value=""><输入类型= 隐藏的" 名称= __ VIEWSTATE" ID = __ VIEWSTATE" 值=/wEPDwULLTIwNjA3NzE2NzEPZBYCAgMPZBYCAgEPZBYCZg9kFggCBQ8UKwACDxYEHgtfIURhdGFCb3VuZGceF0VuYWJsZUFqYXhTa2luUmVuZGVyaW5naGQPFCsAAhQrAAIPFgIeBFRleHQFA0FMTGRkFCsAAg8WBB8CBQhTUENHMDAzMx4FVmFsdWUFCFNQQ0cwMDMzZGQPFCsBAmZmFgEFd1RlbGVyaWsuV2ViLlVJLlJhZENvbWJvQm94SXRlbSwgVGVsZXJpay5XZWIuVUksIFZlcnNpb249MjAxMy4xLjIyMC40MCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj0xMjFmYWU3ODE2NWJhM2Q0FghmDw8WBB4IQ3NzQ2xhc3MFCXJjYkhlYWRlch4EXyFTQgICZGQCAQ8PFgQfBAUJcmNiRm9vdGVyHwUCAmRkAgIPDxYCHwIFA0FMTGRkAgMPDxYEHwIFCFNQQ0cwMDMzHwMFCFNQQ0cwMDMzZGQCCQ8QZGQWAWZkAgsPEGRkFgFmZAIVDzwrAA4CABQrAAJkFwEFCFBhZ2VTaXplAhQBFgIWC2RkZRQrAAALKXlUZWxlcmlrLldlYi5VSS5HcmlkQ2hpbGRMb2FkTW9kZSwgVGVsZXJpay5XZWIuVUksIFZlcnNpb249MjAxMy4xLjIyMC40MCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj0xMjFmYWU3ODE2NWJhM2Q0ATwrAAcACyl0VGVsZXJpay5XZWIuVUkuR3JpZEVkaXRNb2RlLCBUZWxlcmlrLldlYi5VSSwgVmVyc2lvbj0yMDEzLjEuMjIwLjQwLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPTEyMWZhZTc4MTY1YmEzZDQBZGRkZGYWAmYPFCsAAhQrAAIUKwACZGRkZGQYAgUeX19Db250cm9sc1JlcXVpcmVQb3N0QmFja0tleV9fFgEFDXJlcG9ydF9FbnRpdHkFDXJlcG9ydxAQhpZFydb250cm9sc1JlcXVpcmVQb4

<script type="text/javascript">//<![CDATA[var theForm = document.forms['form1'];如果 (!theForm) {theForm = document.form1;}函数 __doPostBack(eventTarget, eventArgument) {if (!theForm.onsubmit || (theForm.onsubmit() != false)) {theForm.__EVENTTARGET.value = eventTarget;theForm.__EVENTARGUMENT.value = eventArgument;theForm.submit();}}//]]><script src="/WebResource.axd?d=WPqzNIAf0aRvfZ51T5FqAw2&amp;t=636265663681012204" type="text/javascript"></script><script src="/ScriptResource.axd?d=0-K2f-KkPKroL1v8HQRfqOW6Bm5xtYnbtzo_BRMK3-orTVPkM3P6U7R-O_kYNMldQbgeLIbAfjb5i99L3QDP87wvzxMx1gZrfqW6Bm5xtYnbtzo_BRMK3-orTVPkM3P6U7R-O_kYNMldQbgeLIbAfjb5i99L3QDP87wvzxMx1gZrfqw6Bm5xtYnbtzo_BRMK3<script type="text/javascript">//<![CDATA[if (typeof(Sys) === 'undefined') throw new Error('ASP.NET Ajax 客户端框架加载失败.');//]]>< SCRIPT SRC = /的ScriptResource.axd d = 0-K2f-KkPKroL1v8HQRfqOW6Bm5xtYnbtzo_BRMK3-orTVPkM3P6U7R-O_kYNMldkzOjZKCZKI8dbMwhU6puwXriFBMbrnAMLgehz7nDFguuKxruf9QzOB5sQpy88shJ0&安培; amp; T公司= 16ab2387" 类型= 文本/JavaScript的" ></脚本><script src="/ScriptResource.axd?d=uLRCwOuJA-xwtRRow_E7Hq0v5K1DXj8YRZ2chYicyCdnEq-SEy_US1KuLZmEnoxm0&amp;t=ffffffffcf4a174e" type="text/javascript"><script src="/ScriptResource.axd?d=uLRCwOuJA-xwtRRow_E7Hq0v5K1DXj8YRZ2chYicyCcCRUgx0Nxj77KymelI6SbiewHQsPnET8txjQRIhxv9ow2&ff;t"javascript4>fft/t"javascript>fft;t>text>fft;t<script src="/ScriptResource.axd?d=uLRCwOuJA-xwtRRow_E7Hq0v5K1DXj8YRZ2chYicyCf49iuFjicOUhj3AUMkpbwDvPtFtRMJzCdeNbcfmY9RdA2&amp;gt;dA2&amp;gt;dA2&amp;gt;dA2&amp;gt;dA2&amp;gt;dA2&amp;gt;dA2&amp;gta>ffcfc<script<script<a>fc>fc<script<a<script<f;<script src="/ScriptResource.axd?d=uLRCwOuJA-xwtRRow_E7Hq0v5K1DXj8YRZ2chYicyCcStsFzhAvG6xzv928b3E8L1Pt9Gjfq_pIz-VgKJtG5wQ2="javascript type<aff;text>fftc&fftc<script<fft;text<script src="/ScriptResource.axd?d=uLRCwOuJA-xwtRRow_E7Hq0v5K1DXj8YRZ2chYicyCdT9MJqqpr-t50oq7GfpGoHVIJkcb_99EGhaoMesY6BL_Y4gIEI-tQ3Ogt;tQ29<script<script<tQ29<4ff;script<text<fc<affc<script<affc<text<affc<a&t<script<s&t<s&t<a<script src="/ScriptResource.axd?d=uLRCwOuJA-xwtRRow_E7Hq0v5K1DXj8YRZ2chYicyCdT9MJqqpr-t50oq7GfpGoHGGMRnTUBSrYO6OmjVxnhB1zYMtlbJO5>famp;gtf<a<trdZSpvQtf>text<a<a<a<a<a<a<s><a><a<a<a<<a><a><a<a><a><a<a><a><a><a><a><a><a<a<a<a><a<a<a<a<a&<script src="/ScriptResource.axd?d=uLRCwOuJA-xwtRRow_E7Hq0v5K1DXj8YRZ2chYicyCfUqwvvfXR2C1xI7mel65lGuhK3m71Yx952aE6WQ4vkzg2&fft;text&fft;script&fft;text&fft;text&fft;script<fftcf<script<f>javascript<fft;text<s<div class="aspNetHidden"><input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWBgL/046PAQLBv5udDwLBv5udDwLO0LHzAwLP0LHzAwL9nO2QARGzTJ5Kcho1tzVM3gIXWgrV275r14"Kcho1tzVM3gIXWgrV275r14"KrVRT/046PAQLBv5udDwLBv5udDwLO0LHzAwLP0LHzAwL9nO2QARGz

<div id="pnlMain"><div id="UpdateProgress1" style="display:none;"角色=状态"咏叹调隐藏=真"><div id="覆盖"><div id="modalprogress"><div id="进度"><i style="背景:#ffffff;"class="fa fa-spinner fa-spin fa-3x stat-elem"></i>

<script type="text/javascript">//<![CDATA[Sys.WebForms.PageRequestManager._initialize('scrpt1', 'form1', ['tpnlMain','pnlMain'], [], [], 1000, '');//]]><div><div><表格><tbody><tr><td><div id="report_Entity" class="RadComboBox RadComboBox_Silk" style="width:160px;white-space:normal;"><!-- 2013.1.220.40 --><table summary="combobox" style="border-width:0;border-collapse:collapse;width:100%" class=""><tbody><tr><td class="rcbInputCell rcbInputCellLeft" style="width:100%;"><input name="report_Entity" type="text" class="rcbInput radPreventDecorate rcbEmptyMessage" id="report_Entity_Input" value="选择实体" autocomplete="off"></td><td class="rcbArrowCell rcbArrowCellRight"><a id="report_Entity_Arrow" style="overflow: hidden;display: block;position: relative;outline: none;">选择</a></td></tr></tbody></table><div class="rcbSlide" style="z-index:6000;"><div id="report_Entity_DropDown" class="RadComboBoxDropDown RadComboBoxDropDown_Silk " style="display:none;"><div class="rcbScroll rcbWidth" style="height:200px;width:100%;"><ul class="rcbList" style="list-style:none;margin:0;padding:0;zoom:1;"><li class="rcbItem">ALL</li><li class="rcbItem">SPCG0033</li></ul></div></div></div><input id="report_Entity_ClientState" name="report_Entity_ClientState" type="hidden" autocomplete="off">

</td><td><select name="report_Type" onchange="javascript:setTimeout('__doPostBack(\'report_Type\',\'\')', 0)" id="report_Type" class="selectbox"><option selected="selected" value="">报告类型</option><option value="1">总订阅者列表</option><option value="2">带有活动包的订户列表</option></选择></td><td></td><td><input type="submit" name="btn_new" value="显示数据" id="btn_new" class="button"></td><td></td><td></td></tr></tbody></table>

<span id="lbl_error" style="color:White;font-weight:bold;"></span><div>

<script type="text/javascript">//<![CDATA[Sys.Application.add_init(function() {$create(Sys.UI._UpdateProgress, {"relatedUpdatePanelId":"pnlMain","displayAfter":0,"dynamicLayout":true}, null, null, $get("UpdateProgress1"));});WebForm_InitCallback();Sys.Application.add_init(function() {$create(Telerik.Web.UI.RadComboBox, {"_dropDownWidth":0,"_height":200,"_postBackReference":"__doPostBack(\u0027report_Entity\u0027,\u0027arguments\u0027)","_skin":"Silk","_uniqueId":"report_Entity","clientStateFieldID":"report_Entity_ClientState","collapseAnimation":"{\"duration\":450}","emptyMessage":"选择实体","expandAnimation":"{\"持续时间\":450}","itemData":[{},{"value":"SPCG0033"}],"localization":"{\"AllItemsCheckedString\":\"检查所有项目\",\"ItemsCheckedString\":\"已检查的项目\",\"CheckAllString\":\"全部检查\"}","markFirstMatch":true}, null, null, $get("report_Entity"));});//]]></表单></body></html>

解决方案

如果您查看 <input id="report_Entity_ClientState" ... > 节点,类型是隐藏的.所以我们必须先取消隐藏 WebElement 并按如下方式发送字符:

entityElem = browser.find_element_by_xpath("//input[@id='report_Entity_ClientState']")browser.execute_script("arguments[0].removeAttribute('type')", entityElem);entityElem.send_keys('Entity1')

I have been trying to write a program to automate my work. My task has series of steps but I am stuck at one point. I am constantly getting NoSuchElementException. I have tried to use id, class, name methods of Selenium but nothing seems to work. My present code is this:

from selenium import webdriver
from selenium.webdriver.common.by import By

browser = webdriver.Chrome('C:\\Users\\abc\\AppData\\Local\\Programs\\Python\\Python36\\chromedriver.exe')
browser.get("http://example.com/login.aspx")

usernameElem = browser.find_element_by_id('txtuser')
usernameElem.send_keys('admin')

passwordElem = browser.find_element_by_id('txtpassword')
passwordElem.send_keys('password')

loginElem = browser.find_element_by_id('btn_login')
loginElem.click() # follows the "Read It Online" link

browser.get("http://example.com/Reports.aspx")

subscriberslistElem = browser.find_element_by_id('ContentPlaceHolder1_rptDC_lnk_0')
subscriberslistElem.click()

browser.implicitly_wait(3)
entityElem = browser.find_element_by_id("report_Entity_ClientState")
print("Test")
entityElem.send_keys('Entity1')

browser.implicitly_wait(3)
reportElem = browser.find_element_by_class_name('selectbox')
print("Test 2")
reportElem.click()

showdataElem = browser.find_element_by_id('btn_new')
showdataElem.click()

excelElem = browser.find_element_by_id('imgExport')
excelElem.click()
print('All is well')

Link to webpage, complete files.

It's strange that when I opened HTML file online as code and searched 'report_Entity_ClientState' there were no results. Images of elements I am trying to access:

First element.

Second element.

Both the entity and report element are not found. Following parts of code return error.

entityElem = browser.find_element_by_id("report_Entity_ClientState")
reportElem = browser.find_element_by_class_name('selectbox')
entityElem.send_keys('Entity1')
browser.implicitly_wait(3)

HTML code of elements:

<html xmlns="http://www.w3.org/1999/xhtml"><head><title>

</title>
    <style type="text/css">
        .rgDataDiv
        {
            height: 350px !important;
        }
        #report2_demo1_dateInput, #report2_demo2_dateInput
        {
            background: none repeat scroll 0 0 #f0f3f4;
            border: 1px solid #4D87A5;
            border-radius: 0.3em;
            color: #296872;
            font-family: "HelveticaNeue-Light" , "Helvetica Neue Light" , "Helvetica Neue" ,Helvetica,Arial, "Lucida Grande" ,sans-serif;
            font-size: 14px;
            font-weight: 400;
            height: 1.8em;
            padding: 0 0.3em;
            position: relative;
            text-align: center;
            text-shadow: 1px 1px 0 #FFFFFF;
        }
        .selectbox
        {
            width: 175px;
            height: 27px;
            background-color: #FFF;
            border: 1px solid #b7b7b7;
            font: 400 12px/18px 'Open Sans' , sans-serif;
            color: #777;
            font-weight: bold;
            border: 1px solid #ccc;
            margin: 0em 0.5em;
            padding: 0em 0.5em;
            box-shadow: 0 0 1px rgba(0, 0, 0, 0.2);
        }
        .selectbox:hover
        {
            border: 1px solid #1261ac !important;
        }
        .selectbox option
        {
            padding: 5px;
        }
        .button
        {
            background-color: #23ad44;
            background-image: linear-gradient(to bottom, #23ad44, #23ad44);
            border: 1px solid #23ad44;
            border-radius: 3px;
            color: #ffffff;
            display: inline-block;
            font-family: arial,helvetica,sans-serif;
            font-size: 12px;
            font-weight: bold;
            margin-left: 5px;
            padding: 7px;
            text-align: center;
            text-decoration: none;
            width: 7em;
        }
        .button:hover
        {
            background-color: #23ad44;
            background-image: linear-gradient(to bottom, #23ad44, #23ad44);
            border: 1px solid #23ad44;
        }
    </style>

    <style type="text/css">
      #overlay
        {
            background-color: #000000;
            height: 100%;
            left: 0;
            opacity: 0.6;
            position: fixed;
            top: 0;
            width: 100%;
            z-index: 1500;
        }
        #theprogress
        {
            background-color: #000000;
            border: 0 solid #CCCCCC;
            height: 30px;
            line-height: 30px;
            opacity: 0.6;
            padding: 10px;
            text-align: center;
            width: 300px;
        }
        #modalprogress
        {
            position: absolute;
            top: 45%;
            left: 50%;
            margin: -11px 0 0 -150px;
            color: #990000;
            font-weight: bold;
            font-size: 14px;
        }
        .RepeaterLabel
        {
            color: #2980b9;
        }
    </style>
<link href="/WebResource.axd?d=YhrvG3mKYx0qi8zmG_e2lyIXyb_ANuRBo_sKLQFJLSvTN5PZ_1mAdbAu2oYdNj8IQ2baXlFznJaZLu1FNyX1Sw2&amp;t=634968929080000000" type="text/css" rel="stylesheet" class="Telerik_stylesheet"><link href="/WebResource.axd?d=pgzM84zOvBy03oK1BX9qj4AemgkqjvEpKd1DaZn3BmX7HYCaCPA9mDXES3WITAYhGWLhU3BijsiI-NqfoTxwKTiVY41t_WUGeTj39PR75xY1&amp;t=634968929080000000" type="text/css" rel="stylesheet" class="Telerik_stylesheet"></head>
<body>
    <form method="post" action="Rep1_SubList.aspx" id="form1">
<div class="aspNetHidden">
<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="">
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="">
<input type="hidden" name="__LASTFOCUS" id="__LASTFOCUS" value="">
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTIwNjA3NzE2NzEPZBYCAgMPZBYCAgEPZBYCZg9kFggCBQ8UKwACDxYEHgtfIURhdGFCb3VuZGceF0VuYWJsZUFqYXhTa2luUmVuZGVyaW5naGQPFCsAAhQrAAIPFgIeBFRleHQFA0FMTGRkFCsAAg8WBB8CBQhTUENHMDAzMx4FVmFsdWUFCFNQQ0cwMDMzZGQPFCsBAmZmFgEFd1RlbGVyaWsuV2ViLlVJLlJhZENvbWJvQm94SXRlbSwgVGVsZXJpay5XZWIuVUksIFZlcnNpb249MjAxMy4xLjIyMC40MCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj0xMjFmYWU3ODE2NWJhM2Q0FghmDw8WBB4IQ3NzQ2xhc3MFCXJjYkhlYWRlch4EXyFTQgICZGQCAQ8PFgQfBAUJcmNiRm9vdGVyHwUCAmRkAgIPDxYCHwIFA0FMTGRkAgMPDxYEHwIFCFNQQ0cwMDMzHwMFCFNQQ0cwMDMzZGQCCQ8QZGQWAWZkAgsPEGRkFgFmZAIVDzwrAA4CABQrAAJkFwEFCFBhZ2VTaXplAhQBFgIWC2RkZRQrAAALKXlUZWxlcmlrLldlYi5VSS5HcmlkQ2hpbGRMb2FkTW9kZSwgVGVsZXJpay5XZWIuVUksIFZlcnNpb249MjAxMy4xLjIyMC40MCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj0xMjFmYWU3ODE2NWJhM2Q0ATwrAAcACyl0VGVsZXJpay5XZWIuVUkuR3JpZEVkaXRNb2RlLCBUZWxlcmlrLldlYi5VSSwgVmVyc2lvbj0yMDEzLjEuMjIwLjQwLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPTEyMWZhZTc4MTY1YmEzZDQBZGRkZGYWAmYPFCsAAhQrAAIUKwACZGRkZGQYAgUeX19Db250cm9sc1JlcXVpcmVQb3N0QmFja0tleV9fFgEFDXJlcG9ydF9FbnRpdHkFDXJlcG9ydF9FbnRpdHkPFCsAAmVlZLr0AotH53uxPGSh7QymTeWwsdUnInQbJfo/1AqZAer9">
</div>

<script type="text/javascript">
//<![CDATA[
var theForm = document.forms['form1'];
if (!theForm) {
    theForm = document.form1;
}
function __doPostBack(eventTarget, eventArgument) {
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
        theForm.__EVENTTARGET.value = eventTarget;
        theForm.__EVENTARGUMENT.value = eventArgument;
        theForm.submit();
    }
}
//]]>
</script>


<script src="/WebResource.axd?d=WPqzNIAf0aRvfZ51T5FqAw2&amp;t=636265663681012204" type="text/javascript"></script>


<script src="/ScriptResource.axd?d=0-K2f-KkPKroL1v8HQRfqOW6Bm5xtYnbtzo_BRMK3-orTVPkM3P6U7R-O_kYNMldQbgeLIbAfjb5i99L3QDP87wvzxMxirCvs4zeaZ5iCvg1&amp;t=16ab2387" type="text/javascript"></script>
<script type="text/javascript">
//<![CDATA[
if (typeof(Sys) === 'undefined') throw new Error('ASP.NET Ajax client-side framework failed to load.');
//]]>
</script>

<script src="/ScriptResource.axd?d=0-K2f-KkPKroL1v8HQRfqOW6Bm5xtYnbtzo_BRMK3-orTVPkM3P6U7R-O_kYNMldkzOjZKCZKI8dbMwhU6puwXriFBMbrnAMLgehz7nDFguuKxruf9QzOB5sQpy88shJ0&amp;t=16ab2387" type="text/javascript"></script>
<script src="/ScriptResource.axd?d=uLRCwOuJA-xwtRRow_E7Hq0v5K1DXj8YRZ2chYicyCdnEq-SEy_US1KuLZmEnoxm0&amp;t=ffffffffcf4a174e" type="text/javascript"></script>
<script src="/ScriptResource.axd?d=uLRCwOuJA-xwtRRow_E7Hq0v5K1DXj8YRZ2chYicyCcCRUgx0Nxj77KymelI6SbiewHQsPnET8txjQRIhxv9ow2&amp;t=ffffffffcf4a174e" type="text/javascript"></script>
<script src="/ScriptResource.axd?d=uLRCwOuJA-xwtRRow_E7Hq0v5K1DXj8YRZ2chYicyCf49iuFjicOUhj3AUMkpbwDvPtFtRMJzCdeNbcfmY9RdA2&amp;t=ffffffffcf4a174e" type="text/javascript"></script>
<script src="/ScriptResource.axd?d=uLRCwOuJA-xwtRRow_E7Hq0v5K1DXj8YRZ2chYicyCcStsFzhAvG6xzv928b3E8L1Pt9Gjfq_pIz-VgKJtG5wQ2&amp;t=ffffffffcf4a174e" type="text/javascript"></script>
<script src="/ScriptResource.axd?d=uLRCwOuJA-xwtRRow_E7Hq0v5K1DXj8YRZ2chYicyCdT9MJqqpr-t50oq7GfpGoHVIJkcb_99EGhaoMesY6BL_Y4gIEI-tQ29AH-8m3OqeM1&amp;t=ffffffffcf4a174e" type="text/javascript"></script>
<script src="/ScriptResource.axd?d=uLRCwOuJA-xwtRRow_E7Hq0v5K1DXj8YRZ2chYicyCdT9MJqqpr-t50oq7GfpGoHGGMRnTUBSrYO6OmjVxnhB1zYMtRDZSpvvOn8lbJO5tQ1&amp;t=ffffffffcf4a174e" type="text/javascript"></script>
<script src="/ScriptResource.axd?d=uLRCwOuJA-xwtRRow_E7Hq0v5K1DXj8YRZ2chYicyCfUqwvvfXR2C1xI7mel65lGuhK3m71Yx952aE6WQ4vkzg2&amp;t=ffffffffcf4a174e" type="text/javascript"></script>
<div class="aspNetHidden">

	<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWBgL/046PAQLBv5udDwLBv5udDwLO0LHzAwLP0LHzAwL9nO2QARGzTJ5Kcho1tzVM3gIXWgrV275r13MCRT/Kb4EgrVKR">
</div>
    <div id="pnlMain">
	
         <div id="UpdateProgress1" style="display:none;" role="status" aria-hidden="true">
		
                <div id="overlay">
                    <div id="modalprogress">
                        <div id="theprogress">
                           <i style="background: #ffffff;" class="fa fa-spinner fa-spin fa-3x stat-elem"></i>
                        </div>
                    </div>
                </div>
            
	</div>
            <script type="text/javascript">
//<![CDATA[
Sys.WebForms.PageRequestManager._initialize('scrpt1', 'form1', ['tpnlMain','pnlMain'], [], [], 1000, '');
	//]]>
</script>

            <div>
             
                <div>
                    <table>
                        <tbody><tr>
                            <td>
                              <div id="report_Entity" class="RadComboBox RadComboBox_Silk" style="width:160px;white-space:normal;">
		<!-- 2013.1.220.40 --><table summary="combobox" style="border-width:0;border-collapse:collapse;width:100%" class="">
			<tbody><tr>
				<td class="rcbInputCell rcbInputCellLeft" style="width:100%;"><input name="report_Entity" type="text" class="rcbInput radPreventDecorate rcbEmptyMessage" id="report_Entity_Input" value="Select Entity" autocomplete="off"></td><td class="rcbArrowCell rcbArrowCellRight"><a id="report_Entity_Arrow" style="overflow: hidden;display: block;position: relative;outline: none;">select</a></td>
			</tr>
		</tbody></table><div class="rcbSlide" style="z-index:6000;"><div id="report_Entity_DropDown" class="RadComboBoxDropDown RadComboBoxDropDown_Silk " style="display:none;"><div class="rcbScroll rcbWidth" style="height:200px;width:100%;"><ul class="rcbList" style="list-style:none;margin:0;padding:0;zoom:1;"><li class="rcbItem ">ALL</li><li class="rcbItem ">SPCG0033</li></ul></div></div></div><input id="report_Entity_ClientState" name="report_Entity_ClientState" type="hidden" autocomplete="off">
	</div>
                                    

                            </td>
                            <td>
                                <select name="report_Type" onchange="javascript:setTimeout('__doPostBack(\'report_Type\',\'\')', 0)" id="report_Type" class="selectbox">
		<option selected="selected" value="">Report Type</option>
		<option value="1">Total Subscriber List</option>
		<option value="2">Subscriber List with Active Package</option>

	</select>
                            </td>
                            <td>
                                
                            </td>
                            <td>
                                <input type="submit" name="btn_new" value="Show Data" id="btn_new" class="button">
                            </td>
                            <td>
                                
                            </td>
                            <td>
                                
                            </td>
                        </tr>
                    </tbody></table>
                </div>
                <span id="lbl_error" style="color:White;font-weight:bold;"></span>
                <div>
                    
                </div>
            </div>
        
</div>
    

<script type="text/javascript">
//<![CDATA[
Sys.Application.add_init(function() {
    $create(Sys.UI._UpdateProgress, {"associatedUpdatePanelId":"pnlMain","displayAfter":0,"dynamicLayout":true}, null, null, $get("UpdateProgress1"));
});

WebForm_InitCallback();Sys.Application.add_init(function() {
    $create(Telerik.Web.UI.RadComboBox, {"_dropDownWidth":0,"_height":200,"_postBackReference":"__doPostBack(\u0027report_Entity\u0027,\u0027arguments\u0027)","_skin":"Silk","_uniqueId":"report_Entity","clientStateFieldID":"report_Entity_ClientState","collapseAnimation":"{\"duration\":450}","emptyMessage":"Select Entity","expandAnimation":"{\"duration\":450}","itemData":[{},{"value":"SPCG0033"}],"localization":"{\"AllItemsCheckedString\":\"All items checked\",\"ItemsCheckedString\":\"items checked\",\"CheckAllString\":\"Check All\"}","markFirstMatch":true}, null, null, $get("report_Entity"));
});
//]]>
</script>
</form>


</body></html>

解决方案

If you look at the <input id="report_Entity_ClientState" ... > node the type is hidden. So we have to unhide the WebElement first and send the chars as follows:

entityElem = browser.find_element_by_xpath("//input[@id='report_Entity_ClientState']")
browser.execute_script("arguments[0].removeAttribute('type')", entityElem);
entityElem.send_keys('Entity1')

这篇关于使用 Selenium 从另一个框架中查找与下拉列表相关的元素 -- Python的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
Python最新文章
热门教程
热门工具
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆