[英]Locate “file upload” button with Selenium
我有下面显示的按钮(图像和HTML),正在尝试单击它。
Selenium无法找到它-我尝试通过xpath和ID进行定位。
<input id="wsUpload1" type="file" name="file">
XPATH:
element = driver.find_element_by_xpath('//input[@id="wsUpload1"]')
element.click()
我要去哪里错了?
编辑:这是Selenium引发的异常:
selenium.common.exceptions.NoSuchElementException:消息:没有这样的元素:无法找到元素:{“ method”:“ xpath”,“ selector”:“ // input [@ id =” wsUpload1“]”}
不确定为什么找不到您的按钮,可能是因为引号引起的(尽管在这种情况下应该显示错误),请尝试使用driver.find_element_by_xpath(".//input[@id='wsUpload1']")
然后查看如果可行。 我不确定您的按钮是否已经显示在页面上,或者您以某种方式触发了它,所以它还不存在? NoSuchElementException
异常是因为在该页面上找不到目标元素,可能是您在错误的页面上,元素尚未呈现,因此您应该等待它出现,元素可能在某些iframe中,等等,当我不知道您的页面如何工作时,很难说。
但是,如果您要上载某些内容,则应在该按钮上执行sendKeys()
(带有要上载的文件路径),而不要click()
它。 这就是硒上传的工作方式。
我已经解决了-驱动程序在侧面板上打开一个选项卡,并且该按钮位于选项卡中。 在单击选项卡和出现按钮之间似乎有几毫秒的延迟,因此我添加了一个等待,直到元素可单击,并且似乎可以正常工作。
wait.until(EC.element_to_be_clickable((By.XPATH, "//input[@id='wsUpload1']"))).click()
可能性
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.