启用后,我正在尝试查找并单击按钮。该网站是世界关税组织有关进出口费用的数据。地址是
http://tariffdata.wto.org/ReportersAndProducts.aspx
一旦选择了“ Reporter”和“ Product”元素,则启用了右上角的“ Next”按钮。
我可以使用硒和python这样选择所有的报告基因和产品:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome("C:/Users/lopez/Downloads/chromedriver.exe")
driver.get("http://tariffdata.wto.org/ReportersAndProducts.aspx")
driver.find_element_by_css_selector('td.common_link:nth-child(2) > a:nth-child(1) > b:nth-child(1)').click()
driver.find_element_by_css_selector('td.common_link:nth-child(4) > a:nth-child(1) > b:nth-child(1)').click()
但是我找不到并单击“下一步”按钮才能转到下一页,即报告下载页面。
以下是与“下一步”按钮相关的html代码部分:
</div>
<div id="ctl00_ContentView_UpLinkButtonNext">
<table width="100%">
<tr style="height: 15px">
<td style="height: 15px">
</td>
</tr>
<tr>
<td style="text-align:right" class="common_link_bold">
<div class = "button_text_icon right">
<a id="ctl00_ContentView_LinkButtonNext" disabled="disabled" class="disabled">Next</a>
</div>
</td>
</tr>
</table>
</div>
启用后,如何找到并单击“下一步”按钮?
谢谢!
答案 0 :(得分:1)
您可以使用显式等待来等待按钮可单击
element = WebDriverWait(driver, 10).until(expected_conditions.element_to_be_clickable((By.ID, 'ctl00_ContentView_LinkButtonNext')))
element.click()
element_to_be_clickable
将检查按钮是否已启用。从docs
用于检查元素的期望可见并已启用,例如 您可以单击它。
请注意,您需要添加一些导入内容
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions
答案 1 :(得分:0)
您可以等待启用的“下一步”按钮,如下所示:
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//a[not(@class='disabled') and .='Next']"))).click()