Selenium Django-Python с Chrome, я не могу найти элемент с xpath - NoSuchElementException для формы - PullRequest
0 голосов
/ 08 мая 2019

Я запустил селен-драйвер на Django, и он выдает эту ошибку.

Я пробовал как обычный метод 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")))

Ответы [ 2 ]

0 голосов
/ 08 мая 2019

Мы не знаем, какую ошибку вы получаете, отредактируйте исходный вопрос и добавьте код ошибки / результат.

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>
0 голосов
/ 08 мая 2019

Это работает для меня:

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/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...