python在一个URL中分别单击两个链接

2024-05-14 16:49:30 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的第一篇帖子,如果有任何错误,请接受我的道歉。你知道吗

首先,我对python真的很陌生。我的问题可能很傻,但我试图寻找许多来源,但没有给我答案。你知道吗

我想做的是点击两个链接,随后在同一个网址。换句话说,第二个链接会在第一个链接被点击后出现。你知道吗

代码运行良好,但没有点击第二个链接。欢迎提出任何建议。谢谢

以下是我的尝试:

from selenium import webdriver

driver = webdriver.Chrome("C:/Users/Kob/Desktop/Python projects/Chrome webdriver/Chromedriver.exe")
driver.get("http://www2.ops3.moc.go.th/")

Export = driver.find_element_by_link_text("EXPORT")
Export.click()

driver.implicitly_wait(10)

Yearly = driver.find_element_by_link_text("Yearly")
Yearly.click()

这是一条发生的错误消息

runfile('C:/Users/Kob/Desktop/Python projects/MOC_spyder project/web driver.py', wdir='C:/Users/Kob/Desktop/Python projects/MOC_spyder project') Traceback (most recent call last): File "<ipython-input-12-05875762a23a>", line 1, in <module> runfile('C:/Users/Kob/Desktop/Python projects/MOC_spyder project/web driver.py', wdir='C:/Users/Kob/Desktop/Python projects/MOC_spyder project') File "c:\users\kob\anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 705, in runfile execfile(filename, namespace) File "c:\users\kob\anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 102, in execfile exec(compile(f.read(), filename, 'exec'), namespace) File "C:/Users/Kob/Desktop/Python projects/MOC_spyder project/web driver.py", line 19, in <module> Yearly.click() AttributeError: 'NoneType' object has no attribute 'click'

Tags: inpyproject链接driverlineusersfile
1条回答
网友
1楼 · 发布于 2024-05-14 16:49:30

要单击该链接,您必须切换到该链接所在的IFrame“data”。你知道吗

因此,在定位“年度”链接之前,请添加以下语句:

driver.switch_to.frame("data")

我测试并运行的完整代码:

driver.get("http://www2.ops3.moc.go.th/")

main_window = driver.window_handles[0]
new_window1 = driver.window_handles[1]
new_window2 = driver.window_handles[2]

driver.switch_to.window(new_window1)
driver.close()
driver.switch_to.window(new_window2)
driver.close()
driver.switch_to.window(main_window)

Export = driver.find_element_by_link_text("EXPORT")
Export.click()
driver.switch_to.frame("data")
driver.implicitly_wait(10)
Yearly = driver.find_element_by_link_text("Yearly")
Yearly.click()

相关问题 更多 >

    热门问题