如何单击<;a>;an中的元素<;ul>;及<;李>;使用python的selenium元素?
我正在刮胡子。我试图点击如何单击<;a>;an中的元素<;ul>;及<;李>;使用python的selenium元素?,python,selenium,web-scraping,selenium-chromedriver,Python,Selenium,Web Scraping,Selenium Chromedriver,我正在刮胡子。我试图点击下的链接,但它抛出了NoTouchElementException异常 以及我要单击的链接: 我正在使用以下代码: from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC chrome_options = webdriver.
下的链接,但它抛出了NoTouchElementException
异常
以及我要单击的链接:
我正在使用以下代码:
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-dev-shm-usage')
chrome_options.add_argument('--start-maximized')
chrome_options.add_argument('window-size=5000x2500')
webdriver = webdriver.Chrome('chromedriver',chrome_options=chrome_options)
url = "https://www.cofidis.es/es/creditos-prestamos/financiacion-coche.html"
webdriver.get(url)
webdriver.find_element_by_xpath('//*[@id="btncerrar"]').click()
time.sleep(5)
webdriver.find_element_by_link_text('Préstamo Coche Nuevo').click()
webdriver.save_screenshot('test1.png')
我得到的错误是:
在find_元素中(self、by、value)
976返回self.execute(Command.FIND_元素{
977“使用”:通过,
-->978'value':value})['value']
979
980 def find_元素(self,by=by.ID,value=None):
在执行中(self、driver_命令、params)
319 response=self.command\u executor.execute(driver\u command,params)
320如果响应:
-->321自我错误处理程序检查响应(响应)
322响应['value']=self.\u展开值(
323响应。获取('值',无))
检查响应(自我、响应)
240警报文本=值['alert']。获取('text')
241引发异常类(消息、屏幕、堆栈跟踪、警报文本)
-->242引发异常类(消息、屏幕、堆栈跟踪)
243
244定义值或默认值(self、obj、key、default):
您只需抓取该url并访问它。另外,值得注意的是,您有一个基本url,您可以简单地将连字符搜索字符串添加到,即,
financiar viaje
添加到
使用下面的代码单击链接
webdriver.find_element_by_css_selector("#ei_tpl_navertical li>a[data='16736']").click()
使用隐式/显式等待来确保元素准备好交互。就你而言:
webdriver = webdriver.Chrome('chromedriver',chrome_options=chrome_options)
url = "https://www.cofidis.es/es/creditos-prestamos/financiacion-coche.html"
webdriver.get(url)
webdriver.implicitlyWait(20)
webdriver.find_element_by_id('btncerrar').click()
time.sleep(5)
webdriver.find_element_by_css_selector("#ei_tpl_navertical li>a[data='16736']").click()
webdriver.save_screenshot('test1.png')
您的错误来自代码
webdriver。请通过\u css\u选择器(“[href*='prestamos/prestamo-Coche-Nuevo']”)查找\u-element\u
,但我们无法在您给定的代码中看到此代码。请确认您给出的代码是正确的。我更新了我的问题:)请阅读原因。粘贴代码并正确格式化。如果你阅读了链接,你会看到代码的截图是不允许的,以及为什么。请删除HTML的屏幕截图,并用HTML的实际文本替换它。它正在工作。我还有一个问题:如何从这个链接中获得相同的结果?提前谢谢。嗨,我来参加会议。我还有两个非常重要的问题要问。如果你有时间来看我,我将非常感激。以下是链接:非常感谢您的回复。我已经接受了一个答案,我没有足够的分数来支持你的答案。很高兴来到这里:)我还有两个非常重要的问题要问。如果你有时间来看我,我将非常感激。以下是链接:
/usr/local/lib/python3.6/dist-packages/selenium/webdriver/remote/webdriver.py
/usr/local/lib/python3.6/dist-packages/selenium/webdriver/remote/errorhandler.py
NoSuchElementException: Message: no such element: Unable to locate element: {"method":"link text","selector":"Préstamo Coche Nuevo"}
(Session info: headless chrome=72.0.3626.121)
(Driver info: chromedriver=72.0.3626.121,platform=Linux 4.14.79+ x86_64)
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
url = 'https://www.cofidis.es/es/creditos-prestamos/financiacion-coche.html'
driver = webdriver.Chrome()
driver.get(url)
url = WebDriverWait(driver,10).until(EC.presence_of_element_located((By.CSS_SELECTOR, "[href*='financiar-viaje']"))).get_attribute('href')
driver.get(url)
webdriver.find_element_by_css_selector("#ei_tpl_navertical li>a[data='16736']").click()
webdriver = webdriver.Chrome('chromedriver',chrome_options=chrome_options)
url = "https://www.cofidis.es/es/creditos-prestamos/financiacion-coche.html"
webdriver.get(url)
webdriver.implicitlyWait(20)
webdriver.find_element_by_id('btncerrar').click()
time.sleep(5)
webdriver.find_element_by_css_selector("#ei_tpl_navertical li>a[data='16736']").click()
webdriver.save_screenshot('test1.png')