如何用硒单击 javascript:void(0) link?
How to click javascript:void(0) link with selenium?
我正在使用 selenium 和 chrome 自动点击 python 的页面。
我无法点击以下 href link:
<a href="javascript:void(0)" class="addSuppData-trigger pts" data-target="edit_3-1" style="padding-right:6px;float:right;">
<i class="material-icons black-text tiny-small">edit</i></a>
我试过使用 xpath、css 和 linktext 都无济于事。
示例代码:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="row-group-1"]/td[1]/div/div[2]/a/i' ))).click()
目标是单击笔,然后 select 从下拉列表中选择项目。
screen shot of button
第二个高亮线是笔。
html tree
该元素似乎是一个 dynamic 元素,要单击它,您需要为所需的 引入 WebDriverWait ]元素可点击,您可以使用以下任一解决方案:
使用CSS_SELECTOR
:
WebDriverWait(browser, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "a.addSuppData-trigger.pts[data-target^='edit_']>i.material-icons.black-text.tiny-small"))).click()
使用XPATH
:
WebDriverWait(browser, 20).until(EC.element_to_be_clickable((By.XPATH, "//a[@class='addSuppData-trigger pts' and starts-with(@data-target, 'edit_')]/i[@class='material-icons black-text tiny-small' and contains(., 'edit')]"))).click()
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
我正在使用 selenium 和 chrome 自动点击 python 的页面。
我无法点击以下 href link:
<a href="javascript:void(0)" class="addSuppData-trigger pts" data-target="edit_3-1" style="padding-right:6px;float:right;">
<i class="material-icons black-text tiny-small">edit</i></a>
我试过使用 xpath、css 和 linktext 都无济于事。
示例代码:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="row-group-1"]/td[1]/div/div[2]/a/i' ))).click()
目标是单击笔,然后 select 从下拉列表中选择项目。 screen shot of button
第二个高亮线是笔。 html tree
该元素似乎是一个 dynamic 元素,要单击它,您需要为所需的 引入 WebDriverWait ]元素可点击,您可以使用以下任一解决方案:
使用
CSS_SELECTOR
:WebDriverWait(browser, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "a.addSuppData-trigger.pts[data-target^='edit_']>i.material-icons.black-text.tiny-small"))).click()
使用
XPATH
:WebDriverWait(browser, 20).until(EC.element_to_be_clickable((By.XPATH, "//a[@class='addSuppData-trigger pts' and starts-with(@data-target, 'edit_')]/i[@class='material-icons black-text tiny-small' and contains(., 'edit')]"))).click()
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC