急急急!python大佬看过来!救救实习生吧!(9.2号根据各位大哥的留言上机测试)

这个错误表明,doc.getElementsByTagName() 方法在 COM 对象环境中,可能由于某种原因接收到两个参数,而这个方法应该只接受一个参数。导致这个问题的原因可能是由于 win32com.client 与底层 COM 接口的交互方式产生了意料之外的行为。

使用 querySelectorAll:如果 getElementsByTagName 无法正常工作,可以尝试使用 querySelectorAll,它在功能上与 getElementsByTagName 类似,但允许使用更灵活的 CSS 选择器。

```python
select_elements = doc.querySelectorAll('select')
```

试试Claude 3.5 比gpt感觉要强,还有一个关键词,cursor

你说捣鼓一周了,你又是个实习生,我建议还是跟带你的人反馈下问题,哪怕是他手把手给你处理这个都行。实习生不要太害羞,完成工作才是重点。

实习嘛,学习的过程,慢慢理吧,很多问题还是Google一下更清晰一些,如果你贴出来之前尝试过哪些解决办法,但还是无法解决,并且提供更多信息,大家可能更好的能帮你

你先想一想为什么你传一个参数会爆2 were given吧

搞一堆AIGC没一个人实际测试一下,也没一个人想想Python有几个getElementsByTagName()

就很简单python不适宜处理这些com对象…你可以换一个编程语言比如 易语言 精易模块 的普通填表模块 直接通过句柄获取dom对象然后操作 要是有人反驳我的话…你就反驳吧…哈哈哈哈哈哈

算了,明天别来了

下周你有时间测试再来吧

嗯,周一上午,我会按照这个帖子里的方式一个一个的试一试。

大家的指导我都收到了,周一就试一试,大家晚安

演示结果:

演示代码:

import win32com.client
import time


def create_ie_instance():
    ie = win32com.client.DispatchEx("InternetExplorer.Application")
    ie.Visible = 1
    return ie


def navigate_and_wait(ie, url, wait_time=5):
    ie.Navigate(url)
    time.sleep(wait_time)


def demo_problematic_site(ie):
    print("原方法")
    navigate_and_wait(ie, "www.baidu.com")

    try:
        select_elements = ie.Document.getElementsByTagName("test")
    except TypeError as e:
        print("win32com错误解析DOM方法")
        print(f"出现TypeError: {e}")


def demo_workaround(ie):
    print("使用body")
    navigate_and_wait(ie, "www.baidu.com")

    try:
        select_elements = ie.Document.body.getElementsByTagName("test")
        print("正常")
    except TypeError as e:
        print("win32com错误解析DOM方法")
        print(f"出现TypeError: {e}")


def main():
    ie = create_ie_instance()

    demo_problematic_site(ie)
    demo_workaround(ie)

    print("\n演示完成,关闭IE...")
    ie.Quit()


if __name__ == "__main__":
    main()

下次能测试的时候再发问,至少大家能收到及时反馈,不至于在不完整的信息里瞎猜,这也是提问的基本礼貌。

相关资料:
https://stackoverflow.com/questions/9816967/interesting-getelementbyid-takes-exactly-1-argument-2-given-sometimes-it

Hello,大家好,新的一周祝大家万事顺意,加薪加薪加薪!!!

大哥,早上好,我现在可以做测试了

感谢,我试了一下,确实不会报错了。太感谢了

大哥这么厉害吗,卧虎藏龙啊