【问题标题】:I don't know how to use statement driver.find_element(By.LINK_TEXT,我不知道如何使用语句 driver.find_element(By.LINK_TEXT,
【发布时间】:2013-08-22 00:41:07
【问题描述】:

我试着写了

driver.find_element(By.LINK_TEXT, value='10').click()

我得到以下命令行反馈:

    uname = driver.find_element(By.LINK_TEXT, '10').click()
  File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", l
ine 680, in find_element
    {'using': by, 'value': value})['value']
  File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", l
ine 165, in execute
    self.error_handler.check_response(response)
  File "C:\Python27\lib\site-packages\selenium\webdriver\remote\errorhandler.py"
, line 164, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: u'no such element\n
 (Session info: chrome=28.0.1500.95)\n  (Driver info: chromedriver=2.2,platform=
Windows NT 6.1 SP1 x86_64)'

我的陈述的其他排列产生了一些类似的反馈。 (我写的 '10' 是指向另一个页面的链接,例如,“1 2 3 4 5 6 7 8 9 10 ...”)

我正试图转到第 10 页。我不知道怎么做。甚至到达第 2 行也是一个让我心满意足的开始。

感谢您的帮助。

更新:

如果我写driver.find_element_by_link_text('10').click(),那么我会收到以下反馈:

    uname = driver.find_element_by_link_text('10').click()
  File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", l
ine 246, in find_element_by_link_text
    return self.find_element(by=By.LINK_TEXT, value=link_text)
  File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", l
ine 680, in find_element
    {'using': by, 'value': value})['value']
  File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", l
ine 165, in execute
    self.error_handler.check_response(response)
  File "C:\Python27\lib\site-packages\selenium\webdriver\remote\errorhandler.py"
, line 164, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: u'no such element\n
 (Session info: chrome=28.0.1500.95)\n  (Driver info: chromedriver=2.2,platform=
Windows NT 6.1 SP1 x86_64)'

更新二:这是我必须使用的代码:

import time
import win32ui
import win32api
import win32con
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from ctypes import *
from selenium.webdriver.common.by import By


driver = webdriver.Chrome()
driver.get('http://[site]');

【问题讨论】:

  • 您看到的异常是由于WebDriver 无法找到任何带有text“10”的<a> 元素。您能否在您的问题中提供相应的HTML,以便我们进一步提供帮助?谢谢。
  • 嗨,马克。我想点击这个:4。我不知道怎么做。
  • 我已将我工作的代码附加在更新后的上方。
  • 马克,谢谢你的帮助。

标签: python selenium web-scraping screen-scraping splinter


【解决方案1】:

试试这个:

driver.find_element_by_link_text('10').click()

【讨论】:

  • 理查德,谢谢你的回复。在尝试了您的建议后,我已经更新了上面的帖子。
  • 理查德,谢谢。如果我允许屏幕有足够的时间更改为包含此数字序列的屏幕(我在它前面放了一个 sleep() 指令),它就会起作用。对此如此陌生,我不知道这个库有多异步。再次感谢。
猜你喜欢
  • 2013-07-28
  • 2019-06-20
  • 1970-01-01
  • 1970-01-01
  • 2021-01-16
  • 2016-12-13
  • 2022-11-11
  • 2023-02-04
  • 2016-08-05
相关资源
最近更新 更多