>我正在尝试执行此代码,它显示"NoSuchElementException"此错误。那么谁能帮我这个?
法典:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver= webdriver.Chrome()
page=driver.get("http://www.awgp.org")
banner_tell=driver.find_element_by_Link_text('Tell Me More')
banner_tell.click()
我认为您需要做的就是以大写形式提供链接文本,但当横幅自动滑动到下一个链接时,此链接是动态的。
您应该想出另一个定位器来准确单击要单击的定位器。否则,如果横幅被更改,您可能会ElementNotVisibleException
。
banner_tell=driver.find_element_by_link_text('TELL ME MORE')
试试 xpath
banner_tell= driver.find_element_by_xpath("//*[contains(text(),'TELL ME MORE')]")
看起来你几乎很近,但function()
应该是:
find_element_by_link_text()
要单击带有文本的按钮,如"告诉我更多">,您必须使用expected_conditions子句诱导WebDriverWait,element_to_be_clickable
如下所示:
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.LINK_TEXT, "TELL ME MORE"))).click()