Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Selenium-在页面上找不到元素_Python_Python 3.x_Selenium_Selenium Webdriver - Fatal编程技术网

Python Selenium-在页面上找不到元素

Python Selenium-在页面上找不到元素,python,python-3.x,selenium,selenium-webdriver,Python,Python 3.x,Selenium,Selenium Webdriver,我已经仔细阅读了很长一段时间,但找不到解决当前问题的确切或类似的方法。这是我在SO上的第一篇帖子,如果我的格式设置被关闭,我深表歉意 问题- 我试图在网页上找到一个按钮,自动将我按进时钟。我能够登录并导航到正确的页面(该页面似乎是动态加载的,因为从“时间管理”或“付款期限”等不同选项卡切换不会更改URL) 尝试解决- 我尝试过使用直接和间接的XPath、CSS选择器、ID、类、名称,但都失败了。下面包括查找按钮的不同代码尝试,以及包含按钮的代码片段 按钮-HTML 这些都不管用,我也不明白为什

我已经仔细阅读了很长一段时间,但找不到解决当前问题的确切或类似的方法。这是我在SO上的第一篇帖子,如果我的格式设置被关闭,我深表歉意

问题- 我试图在网页上找到一个按钮,自动将我按进时钟。我能够登录并导航到正确的页面(该页面似乎是动态加载的,因为从“时间管理”或“付款期限”等不同选项卡切换不会更改URL)

尝试解决- 我尝试过使用直接和间接的XPath、CSS选择器、ID、类、名称,但都失败了。下面包括查找按钮的不同代码尝试,以及包含按钮的代码片段

按钮-HTML


这些都不管用,我也不明白为什么会这样。任何帮助都将不胜感激

尝试代码时会出现什么样的错误?抱歉@arundeepchohan-我已经在代码本身中添加了错误作为注释。“find_element_by_xyz”代码括号返回“无法定位元素”和“wait.until”代码括号奇怪地没有返回异常错误,但它失败了。最后,尝试执行脚本本身会返回“referenceError:\uu doPostBack未定义”它来自哪个网站?它来自Ultipro,我的公司将其用于人力资源、跟踪时间表、工资存根、401k等。您不能创建虚拟帐户,因为每个公司的设置都是唯一的。我将网站源代码添加到上面的pastebin链接中。你能从开发者工具中找到它吗?右键单击并复制xpath或css选择器。尝试代码时会出现什么样的错误?抱歉@arundeepchohan-我已将错误作为注释添加到代码本身中。“find_element_by_xyz”代码括号返回“无法定位元素”和“wait.until”代码括号奇怪地没有返回异常错误,但它失败了。最后,尝试执行脚本本身会返回“referenceError:\uu doPostBack未定义”它来自哪个网站?它来自Ultipro,我的公司将其用于人力资源、跟踪时间表、工资存根、401k等。您不能创建虚拟帐户,因为每个公司的设置都是唯一的。我将网站源代码添加到上面的pastebin链接中。你能从开发者工具中找到它吗?右键单击并复制xpath或css选择器。
<td>
    <a onclick="return OnEmpPunchClick2(this);" id="btnEMPPUNCH_PUNCH" class="timesheet button icon " href="javascript:__doPostBack('btnEMPPUNCH_PUNCH','')">
        <span> Punch</span></a>
    <input type="hidden" name="hdfEMPPUNCH_PUNCH" id="hdfEMPPUNCH_PUNCH" value="0">
</td>
#All these return: "Unable to locate element"
self.browser.find_element_by_id("btnEMPPUNCH_PUNCH")
self.browser.find_element_by_xpath("//a[@id='btnEMPPUNCH_PUNCH']")
self.browser.find_element_by_css_selector('#btnEMPPUNCH_PUNCH')

#I attempted a manual wait:
wait=WebDriverWait(self.browser,30)
button = wait.until(expected_conditions.element_to_be_clickable((By.CSS_SELECTOR,'#btnEMPPUNCH_PUNCH')))

#And even manually triggering the script:
self.browser.execute_script("javascript:__doPostBack('btnEMPPUNCH_PUNCH','')")
self.browser.execute_script("__doPostBack('btnEMPPUNCH_PUNCH','')")
#Returns Message: ReferenceError: __doPostBack is not defined