driver = webdriver.Chrome()
driver.get(url)
time.sleep(5)
ele = driver.find_element(By.XPATH, '//[@id="tiResponsiveHeader"]/div[2]/@2]/div[2]/div/ti-login//a').click()
#ele = driver.find_element(By.XPATH, '//[@id="s-top-left"]/a[2]')
ele.click()问题相关代码,请勿粘贴截图
可以调用起该网页,但模拟点击首页里面最上面的登陆注册Login / Register按钮,始终无法定位xpath,反复看了F12里面的引用没错,试着用class_name等其他的也不行,看了ti.com的源码里面也没什么iframe,原因在哪里?
代码的注释部分是调用了百度首页,然后单击里面的 hao123,能调用并显示正常,难道是ti.com网站不一样
Login / Register放在影子节点中,需要获取shadowRoot后在定位里面的元素,用下面的js来点击就行
from selenium import webdriver
from selenium.webdriver.common.by import By
url="https://www.ti.com/"
driver = webdriver.Chrome()
driver.get(url)
driver.execute_script("var el= document.querySelector('ti-login').shadowRoot.querySelector('a');el.click()")
from selenium.webdriver import Chrome
from selenium.webdriver.common.by import By
url = "https://www.ti.com/"
driver = Chrome()
driver.get(url=url)
driver.find_element(By.CLASS_NAME, r'ti_p-responsiveHeader-top-llc').click()
a = input()
driver.close()
问题遇到的现象和发生背景: 无法定位里面登陆按钮的xpath, 下面的ti.com网页的xpath的两个 div[ 中间的一个 div[ 用@ 替代, 被CSDN提示禁止重复输入 :(
url="https://www.ti.com/"
#url="https://www.baidu.com/"
driver = webdriver.Chrome()
driver.get(url)
time.sleep(5)
ele = driver.find_element(By.XPATH, '//[@id="tiResponsiveHeader"]/div[2]/@2]/div[2]/div/ti-login//a').click()
#ele = driver.find_element(By.XPATH, '//[@id="s-top-left"]/a[2]')
ele.click()
问题相关代码,请勿粘贴截图
运行结果及报错内容
可以调用起该网页,但模拟点击首页里面最上面的登陆注册Login / Register按钮,始终报错无法定位xpath,反复看了F12里面的引用没错,试着用class_name等其他的也不行,看了ti.com的源码里面也没什么iframe,原因在哪里?
我的解答思路和尝试过的方法
代码的注释部分是调用了百度首页,然后单击里面的 hao123,能调用并显示正常,难道是ti.com网站不一样
我想要达到的结果
解决下面
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id="tiResponsiveHeader"]/div[2]/div[2]/div[2]/div/ti-login//a"}
(Session info: chrome=103.0.5060.114)
Stacktrace: