【问题标题】:How to store copied text into a variable in Python using Selenium WebDriver如何使用 Selenium WebDriver 将复制的文本存储到 Python 中的变量中
【发布时间】:2020-05-01 20:10:16
【问题描述】:

我正在从事一些网络抓取项目,我在其中抓取数据并将其存储到 CSV 文件中。我陷入了需要将复制的数据存储到变量中的情况。

其实,文本是点击按钮后生成的,自动复制的,我只需要将复制的文本保存到变量中即可。现在为此,我使用以下命令,但没有任何效果。

Command1-

   spam=driver.find_element_by_xpath('//div[@data-control-name="copy_address]').click()
   print("copied text",spam)

它显示“没有复制文本”

即使我也使用了 pyperclip 库,但对我没有用。

Command2-

   pyperclip.copy(driver.find_element_by_xpath('//div[@data-control-name="copy_address"]').click())
   spam = pyperclip.paste()

我该如何继续?

【问题讨论】:

    标签: python pandas dictionary selenium-webdriver web-scraping


    【解决方案1】:

    您正在单击 xpath 中的元素而不是复制其文本,这就是您的变量返回 None 的原因。

    试试:

    spam=driver.find_element_by_xpath('//div[@data-control-name="copy_address]').text
    print(spam)
    

    如果它不起作用,也许你得到的元素不是文本。尝试使用 get_attribute 方法获取其 html 代码:

    spam=driver.find_element_by_xpath('//div[@data-control-name="copy_address]')
    your_text = spam.get_attribute('outerHTML')
    print(your_text)
    

    这将为您提供您感兴趣的元素的完整 html,然后您只需对结果进行子串化即可获得所需的文本。

    希望这会有所帮助。

    【讨论】:

    • 基本上文本会在点击事件之后出现,在outerHTML中,没有文本,要获取我们需要点击按钮的文本,然后只有文本出现。我认为为此使用了一些 ajax 技术。
    • 那么你复制的xpath可能不是正确的xpath。首先单击该按钮,然后无论加载什么页面(不包括弹出窗口),您都必须获取所需文本的 xpath,然后执行上述方法。
    猜你喜欢
    • 2019-12-03
    • 1970-01-01
    • 2017-03-21
    • 2018-05-19
    • 1970-01-01
    • 2021-10-23
    • 1970-01-01
    • 1970-01-01
    • 2023-02-03
    相关资源
    最近更新 更多