当前位置: 首页 > 知识库问答 >
问题:

我做了一个selenium python代码,为什么不行?[重复]

徐智渊
2023-03-14

我是这样写的:

from selenium import webdriver  
driver = webdriver.Chrome(executable\_path=**"C:\\\\browserdrivers\\\\chromedriver.exe")  
driver.get("https://www.aliexpress.com/item/1005004580390613.html?spm=a2g0o.search0304.0.0.2b6c66b9cAGH2z&algo\_pvid=f3d04756-9c4f-4971-a2e2-c7d03e07305f&aem\_p4p\_detail=202207310340491186137100550600065998606&algo\_exp\_id=f3d04756-9c4f-4971-a2e2-c7d03e07305f-2&pdp\_ext\_f=%7B%22sku\_id%22%3A%2212000029704251181%22%7D&pdp\_npi=2%40dis%21USD%21%213.29%21%21%21%21%21%402100bdec16592640492515275ecd10%2112000029704251181%21sea")  

w = driver.find\_element\_by\_xpath('//\*\[@id="root"\]/div/div\[2\]/div/div\[2\]/div\[4\]/div\[1\]/span')  
print("w")

这是它写的:

"C:\\Program Files\\Python310\\python.exe" "C:/לימוד סלניום/ראשי.py"

C:\\לימוד סלניום\\[ראשי.py:2](https://ראשי.py:2): DeprecationWarning: executable\_path has been deprecated, please pass in a Service object

  driver = [webdriver.Chrome](https://webdriver.Chrome)(executable\_path="C:\\\\browserdrivers\\\\chromedriver.exe")

Traceback (most recent call last):

  File "C:\\לימוד סלניום\\[ראשי.py](https://ראשי.py)", line 5, in <module>

w = driver.find\_element\_by\_xpath('//\*\[@id="root"\]/div/div\[2\]/div/div\[2\]/div\[4\]/div\[1\]/span')

AttributeError: 'WebDriver' object has no attribute 'find\_element\_by\_xpath'

Process finished with exit code 1

共有1个答案

桂智志
2023-03-14

您的问题是您正在使用已弃用的语法。在较新版本的Selenium中,find_element_**被替换为(例如)find_element(By.ID,(…)。在您的情况下,定位该元素的正确方法如下(考虑到您的XPATH是正确的):

w = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, '//\*\[@id="root"\]/div/div\[2\]/div/div\[2\]/div\[4\]/div\[1\]/span'))) 

您还需要以下导入:

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

硒文档可以在以下位置找到: https://www.selenium.dev/documentation/

 类似资料:
  • 介绍 再练习一次循环。这个程序会比前一个更多一些。 在这种情况下,对手将是计算机。 任务1 这个游戏需要两个6面骰子。你将需要用随机数生成器模拟这些骰子。 每转一圈,玩家将轮流掷两个骰子。如果任何一个骰子上都没有出现1,则这些值将加到玩家的总数中。然后他们可以选择再次滚动(选择0),或者将回合传递给另一个玩家(选择1)。如果在其中一个骰子上出现1,则该玩家在整个回合中的总积分不会增加,而是成为另一

  • 问题内容: 如果html文件是本地文件(在我的C驱动器上),则可以使用,但是如果html文件在服务器上并且图像文件是本地文件,则无法使用。这是为什么? 任何可能的解决方法? 问题答案: 如果客户端可以请求本地文件系统文件,然后使用JavaScript找出其中的内容,则将是一个安全漏洞。 解决此问题的唯一方法是在浏览器中构建扩展。Firefox扩展和IE扩展可以访问本地资源。Chrome的限制更为严

  • 因此,我开始开发x86\u 64 hobby内核,我发现这段代码用于加载GDT(全局描述符表),但我不知道它是做什么的。 我知道它从rdi寄存器(sysv abi中函数调用的第一个参数的寄存器)加载我的gdt描述符,但我不知道为什么我需要将所有段寄存器设置为0x10,其余的是什么黑魔法?

  • 我试图解决Dijkstra算法上的一个hackerrank问题--https://www.hackerrank.com/challenges/dijkstrashortreach。我在使用我自己的Dijkstra代码逻辑。虽然我的代码解决了更容易的测试用例,但它在更高的测试用例上失败了。我猜我的代码在某个地方缺少了一些传递性,并且我得到的某个节点的值高于预期。你能帮我找出我的错误吗?问题:输入格式

  • 我正在使用EclipseIDE编程。在完成有关Apache POI的教程后: https://www.youtube.com/watch?v=RsrF2Ku7ad4 我通过eclipse和以下链接创建了一个可执行jar:http://help.eclipse.org/mars/index.jsp?topic=/org.eclipse.jdt.doc.user/tasks/tasks-37.htm

  • 我正在做一个项目,我的意图是运行一个玉米作业,并发送邮件给我的朋友,祝他们生日,我能够从MySQL DB获取电子邮件,并将其与当前日期进行比较,但当涉及到发送电子邮件时,我得到NullPointerException。 我确信应用程序属性没有问题,我在其他项目中也使用了它们,它们的功能正常 这是我得到以下信息的错误