单击没有使用 selenium 的 id 的提交按钮

Click on submit button which does not have an id using selenium

我尝试使用提交功能点击提交按钮,但看不到结果。我要抓取的网站是

Jntuh

提交按钮具有以下属性

<input type="submit" value="Submit">

我用过这个.execute脚本

Resultbrowser.execute_script("""document.getElementById("myForm").onsubmit();""")

不知道网站有没有on submit功能

完整代码:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

link = 'http://results.jntuh.ac.in/jsp/SearchResult.jsp?degree=btech&examCode=1442&etype=r17&type=intgrade'
hallticket = "1780XXXXXX"
dobval = '1998-03-01'
with webdriver.Chrome() as Resultbrowser:

    Resultbrowser.get(link)
    Hallfield = Resultbrowser.find_element_by_name("htno")
    Hallfield.send_keys(hallticket)
    Hallfield.send_keys(Keys.RETURN)
    dob = Resultbrowser.find_element_by_class_name('hasDatepicker')
    dob.send_keys(dobval)
    dob.send_keys(Keys.RETURN)
    dob.send_keys(Keys.TAB)
    time.sleep(2)
    Resultbrowser.execute_script("""
    document.querySelector("#txtInput").value = document.querySelector("#txtCaptcha").value
    """)
    time.sleep(5)
    Resultbrowser.execute_script("""document.getElementById("myForm").onsubmit();""")

    time.sleep(10)

你快到了。通过 id 找到整个表单元素,即 myForm,然后使用 .submit 方法提交:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

link = 'http://results.jntuh.ac.in/jsp/SearchResult.jsp?degree=btech&examCode=1442&etype=r17&type=intgrade'
hallticket = "1780XXXXXX"
dobval = '1998-03-01'
with webdriver.Chrome() as Resultbrowser:

    Resultbrowser.get(link)
    Hallfield = Resultbrowser.find_element_by_name("htno")
    Hallfield.send_keys(hallticket)
    Hallfield.send_keys(Keys.RETURN)
    dob = Resultbrowser.find_element_by_class_name('hasDatepicker')
    dob.send_keys(dobval)
    dob.send_keys(Keys.RETURN)
    dob.send_keys(Keys.TAB)
    time.sleep(2)
    Resultbrowser.execute_script("""
    document.querySelector("#txtInput").value = document.querySelector("#txtCaptcha").value
    """)
    time.sleep(5)

    form = Resultbrowser.find_element_by_id("myForm")
    form.submit()

    time.sleep(10)

或使用您已经编写的.execute_script-方法:

Resultbrowser.execute_script("""document.getElementById("myForm").submit();""")

即将 onsubmit 替换为 submit.