如何使用 Selenium 和 Python 单击带有文本作为联系人的元素
How to click on the element with text as Contact using Selenium and Python
我正在使用 selenium 来抓取某些 site.On 某个特定页面的所有支持页面我有一个错误。
这是页面的代码:
<a href="?a=support" class="">
<span><b></b> Contact</span>
<b></b> Contact
</a>
我正在尝试使用许多 try/except 条件来查找支持页面。
try:
print ("FINDING SUPPORT ...")
driver_hyip.find_element_by_css_selector("a[href*='support']").click()
driver_hyip.execute_script("window.alert = function() {};")
except:
try:
print ("NOT FINDING SUPPORT, TRYING ANOTHER WAY")
driver_hyip.find_element_by_xpath("//a[@href='?a=support']").click()
except:
print ("NOT FINDING SUPPORT, TRYING TO FIND CONTACT")
driver_hyip.find_element_by_css_selector("a[href*='contact']").click()
我希望我的代码能找到该页面,但我得到了:
Message: no such element: Unable to locate element: {"method":"css selector","selector":"a[href*='contact']"}
PS:你知道在 selenium 中是否还有其他方法可以尝试多路径吗?因为我在这里做了很多尝试/除了我的代码。
To click()
在文本为 Contact 的元素上,您需要为 element_to_be_clickable()
引入 WebDriverWait您可以使用以下任一项 :
使用CSS_SELECTOR
:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "a[href$='support']>span"))).click()
使用XPATH
:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//a[contains(@href, 'support')]/span"))).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 来抓取某些 site.On 某个特定页面的所有支持页面我有一个错误。 这是页面的代码:
<a href="?a=support" class="">
<span><b></b> Contact</span>
<b></b> Contact
</a>
我正在尝试使用许多 try/except 条件来查找支持页面。
try:
print ("FINDING SUPPORT ...")
driver_hyip.find_element_by_css_selector("a[href*='support']").click()
driver_hyip.execute_script("window.alert = function() {};")
except:
try:
print ("NOT FINDING SUPPORT, TRYING ANOTHER WAY")
driver_hyip.find_element_by_xpath("//a[@href='?a=support']").click()
except:
print ("NOT FINDING SUPPORT, TRYING TO FIND CONTACT")
driver_hyip.find_element_by_css_selector("a[href*='contact']").click()
我希望我的代码能找到该页面,但我得到了:
Message: no such element: Unable to locate element: {"method":"css selector","selector":"a[href*='contact']"}
PS:你知道在 selenium 中是否还有其他方法可以尝试多路径吗?因为我在这里做了很多尝试/除了我的代码。
To click()
在文本为 Contact 的元素上,您需要为 element_to_be_clickable()
引入 WebDriverWait您可以使用以下任一项
使用
CSS_SELECTOR
:WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "a[href$='support']>span"))).click()
使用
XPATH
:WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//a[contains(@href, 'support')]/span"))).click()
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC