gpt4 book ai didi

Python selenium 无法点击按钮

转载 作者:太空宇宙 更新时间:2023-11-03 14:56:10 33 4
gpt4 key购买 nike

我使用 selenium 在 python 中编写了一个脚本来访问特定页面。到达那里需要跨越五个台阶。首先,我的浏览器必须单击“按地址搜索”按钮,然后在框中输入“街道名称”,并在相应框中输入“街道地址”,然后单击搜索按钮才能到达目标页面。但是,我在第一次尝试单击“按地址搜索”按钮时遇到错误。看来我照做了,但不知道我在哪里犯了错误。预先感谢您查看一下。我正在尝试使用的脚本:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Chrome()
driver.get("http://hcad.org/quick-search/")
wait = WebDriverWait(driver, 10)
driver.find_element_by_id("s_addr").click()
driver.find_element_by_name('stnum').send_keys('8227')
driver.find_element_by_name('stname').send_keys('FINDLAY ST')
driver.find_element_by_link_text("Search").click()
driver.quit()

在其中找到“按地址搜索”id 按钮的元素:

<tbody><tr>
<td class="auto-style1"></td>
<td width="15" align="left" valign="top" class="auto-style1"></td>
<td width="600" align="left" valign="top" class="auto-style1">

<input type="submit" id="s_acct" value="Search By Account">&nbsp;
<input type="submit" id="s_addr" value="Search By Address">&nbsp;
<input type="submit" id="s_name" value="Search By Owner Name"><table>
<form id="search_button" name="search_button" action="/records/QuickSearch.asp" method="post"></form>

要在框中填写其余关键字的元素:

<tr align="middle">
<td colspan="1">
<select name="TaxYear">
<option value="2017">2017</option>
</select></td>
<td align="middle">
<input name="stnum" size="5" maxlength="5"></td>
<td align="middle">
<input name="stname" maxlength="24">
</td><td align="middle">
<nobr><input type="submit" value="Search"></nobr>
</td>
</tr>

我收到的错误:

    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element:

最佳答案

您需要等待 iframe 可用,并在可用时切换到它。

...
wait = WebDriverWait(driver, 10)
element = wait.until(EC.presence_of_all_elements_located((By.TAG_NAME, 'iframe')))
driver.switch_to.frame(driver.find_element_by_tag_name("iframe"))
driver.find_element_by_id("s_addr").click()
driver.find_element_by_name('stnum').send_keys('8227')
driver.find_element_by_name('stname').send_keys('FINDLAY ST')
...

此外,使用 xpath 似乎是选择搜索按钮的更方便的方法。

driver.find_element_by_xpath("//input[@value='Search']").click()
driver.quit()

关于Python selenium 无法点击按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45558433/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com