Selenium Django-Python with Chrome,我找不到带有 xpath 的元素 - NoSuchElementException for form



我在Django上运行了Selenium Web驱动程序,并引发此错误。

我既尝试了通常的XPath方法和EC方法。我犯了同样的错误。我该怎么办?

这是此的URL:

from selenium import webdriver  
from selenium.webdriver.support.ui import Select
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
def login_mls(self):
    self.driver.get(self.info["url"])
    form = self.driver.find_element_by_xpath("//form")
    # form = WebDriverWait(self.driver, 4).until(EC.presence_of_element_located((By.XPATH, "//form")))

这对我有用:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()
driver.get(' https://login.fmls.com/SAML/login.aspx')
form = driver.find_element_by_xpath('//form')
print(form)

输出:

pawel@pawel-XPS-15-9570:~/test$ python form.py 
<selenium.webdriver.remote.webelement.WebElement (session="098afd96ade1cd7b3d6a399da2c01156", element="0.3574376585380399-1")>
pawel@pawel-XPS-15-9570:~/test$ 

还检查您是否具有Chromedriver的适当版本:http://chromedriver.chromium.org/

我们不知道您会遇到什么错误,请编辑您的原始问题并添加错误代码/结果。

from selenium import webdriver
def main():
    driver = webdriver.Chrome()
    driver.get("https://login.fmls.com/SAML/login.aspx?ReturnUrl=%2fsaml%2fSAML%2fSSOService.aspx%3fSAMLRequest%3djZLNTsMwEIRfJfKBWxLHrWhrmqCKCilSEagBDlyQ62waS7EdvE7VxydJy98BxMXyrnY934y8RKGblq86X5stvHWAPsjXKXlNaLUDyapwBxULp7tJFQo6KcOFhHkypwDsckaCZ3CorEkJiygJcsQOcoNeGN%252B3aLII6TRk88ck4RPK2Sxi08ULCda9ijLCj5u19y3yOG7sXpmo0g1G0up44IqL1d0mLor7AtxBSYgEtkcS3FonYSROSSUahEH5QSCqA3x2VojgBoUba7DT4M5v5KaEY0ro7xNP280XlRbeqeOIVUb9ca4HwtP1zD2QXbc9g6%252Bd7fZ1yi6Ebq%252BMdVAqB9KnCQmOujHIx8RT0jnDrUCF3AgNyL3kg13eJ8lbZ72VtiHZcpjmY7Du2%252F7f6%252BLDGcn%252B7WMZf1PKTtXPf5G9Aw%253D%253D%26RelayState%3dMatrix%2bSAML%2bLogin")
    form = driver.find_element_by_xpath("//form")
    print(form.get_attribute('innerHTML'))
    driver.quit()
if __name__== "__main__":
    main()

产生以下结果:

<div class="aspNetHidden">
<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="">
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="">
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTE1NDc5NjUxODFkZHo0kLKAuD6KzJGxZ/aQsz5+NcyHK8nr1vvAdO33yRKE">
</div>
<script type="text/javascript">
//<![CDATA[
var theForm = document.forms['loginForm'];
if (!theForm) {
    theForm = document.loginForm;
}
function __doPostBack(eventTarget, eventArgument) {
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
        theForm.__EVENTTARGET.value = eventTarget;
        theForm.__EVENTARGUMENT.value = eventArgument;
        theForm.submit();
    }
}
//]]>
</script>

<script src="/SAML/WebResource.axd?d=_ulVcax4UMmN3UuWv5F3RLuBS7Wf2KdhbQ4rKP8EDCY2OvgjlTJZRM_hycpWTqB586VVjCi1GX8G0MiFr7NtN5EeqYDX2Qe_9tSUwL5FQ3A1&amp;t=635792883671809273" type="text/javascript"></script>

<script src="/SAML/WebResource.axd?d=B1N4OA7D9LYYMH2I_QDh_ysU8l027A6f4thdfnqZvhB5-j2hSMgM9kG1TN0C9miqIBxo_8lJj6WXKbeH9xUSqHbNLlnTZe31zKcrSZ2P6pU1&amp;t=635792883671809273" type="text/javascript"></script>
<div class="aspNetHidden">
        <input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="E0E0B06D">
        <input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEdAAQXirB13EsU5zAenujE5xwiOpe4FeD7mC5OT86VF28JEVwgSqpCSL2Tos3TZ5JWb9vOzLf+PULXAx0siEaqrIWOR3uVdAmBuyi5p8tVetEsGd4dh3jA0euUGEtlvdn1mM0=">
</div>
                    <input name="PblcID" type="text" id="PblcID" placeholder="username">
                    <input name="passwordTextBox" type="password" id="passwordTextBox" placeholder="password">
                    <input type="submit" name="loginButton" value="Login" id="loginButton" class="greenbutton">
                    <div id="ErrorResponse" class="errormessage" style="display:none;text-align:center;">Response Area</div>
                    <p class="message"><a href="https://www.fmls.com/password-reset">Forgot Password</a> &nbsp; / &nbsp; <a href="https://www.fmls.com/forgot-username">Forgot Username</a> </p>

<script type="text/javascript">
//<![CDATA[
WebForm_AutoFocus('passwordTextBox');//]]>
</script>

最新更新