Python不支持的操作数类型pyppeteer

时间:2019-07-18 15:18:37

标签: python html python-3.x puppeteer

我正在尝试使用pyppeteer(python的puppeteer端口,语法基本相同)。

当我尝试await page.mouse.click('.jfk-button-narrow', { 'button': 'left' })时,它会显示错误消息

 File "C:\Users\Windows 7\Desktop\Scripts\ScriptsPython\PrimevalBrowserManipulator.py", line 9, in main
    await page.mouse.click('.jfk-button-narrow', { 'button': 'left' })
  File "C:\Users\Windows 7\AppData\Local\Programs\Python\Python36\lib\site-packages\pyppeteer\input.py", line 302, in click
    await self.move(x, y)
  File "C:\Users\Windows 7\AppData\Local\Programs\Python\Python36\lib\site-packages\pyppeteer\input.py", line 277, in move
    x = round(fromX + (self._x - fromX) * (i / steps))
TypeError: unsupported operand type(s) for -: 'str' and 'float'

当我尝试在google翻译器网站中选择“切换语言”按钮时。但是,如果我改用await page.mouse.click(1066.0625, 135, { 'button': 'left' })之类的脚本来选择要单击的确切像素(不是很方便),则脚本可以完美地工作。那么“ .jfk-button-narrow”出了什么问题?这是“切换语言”按钮的确切元素类别。

这是我的代码:

import asyncio
from pyppeteer import launch
async def main():
    browser = await launch()
    page = await browser.newPage()
    await page.setViewport({ 'width': 1280, 'height': 560 })
    await page.goto('https://translate.google.com.br/?hl=pt-BR')
    await page.mouse.click('.jfk-button-img', { 'button': 'left' })
    await page.screenshot({'path': r'C:\Users\Windows 7\Desktop\yes.png'})
    await browser.close()
asyncio.get_event_loop().run_until_complete(main())

我检查了source,看来python端口不接受元素ID /类/名称,而仅接受page.mouse.click函数中的像素坐标,但是我不确定。

0 个答案:

没有答案