使用Python结合Selenium无法定位并点击网页链接求助
解决Selenium定位并点击目标链接的问题
你碰到的AttributeError是因为Selenium的By类里没有partialLinkText这个属性,正确的写法是大写的PARTIAL_LINK_TEXT,这是第一个要改的地方。
针对你的目标链接,这里有几个简单好上手的定位方法,挑你觉得最直观的用就行:
方法1:直接用链接可见文本(最推荐新手)
目标链接的可见文字是Go to Orbitax,直接用LINK_TEXT定位,精准又好理解:
time.sleep(5) link1 = browser.find_element(By.LINK_TEXT, "Go to Orbitax") link1.click()
方法2:用部分链接文本匹配
如果以后链接文本有小改动,也可以用部分文本匹配,记得用正确的By.PARTIAL_LINK_TEXT:
time.sleep(5) link1 = browser.find_element(By.PARTIAL_LINK_TEXT, "Orbitax") link1.click()
方法3:通过title属性定位
链接带title="Go to Orbitax"属性,用CSS选择器定位也很稳:
time.sleep(5) link1 = browser.find_element(By.CSS_SELECTOR, 'a[title="Go to Orbitax"]') link1.click()
方法4:通过href部分内容定位
如果href里的/maf/app/authentication是固定不变的,也可以用CSS选择器匹配这部分:
time.sleep(5) link1 = browser.find_element(By.CSS_SELECTOR, 'a[href*="/maf/app/authentication"]') link1.click()
另外提一句,固定的time.sleep(5)不是最优解,新手可以慢慢学着用显式等待,更稳定,比如:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC # 最多等10秒,直到链接出现 link1 = WebDriverWait(browser, 10).until( EC.presence_of_element_located((By.LINK_TEXT, "Go to Orbitax")) ) link1.click()
内容的提问来源于stack exchange,提问作者Python_Newbie
相关产品推荐
相关产品推荐

