在我公司的Intranet网站上尝试执行重复性任务时遇到一些问题。
虽然我可以在其他网站中正确找到元素(单击,发送键等),但在该网站中却不能做同样的事情(我总是得到的错误是“ 无法找到带有xpath的元素 == ...“)。
我尝试用Selenium IDE记录相同的任务,并且效果很好。
如果我将Selenium IDE测试用例导出为python代码,并且将xpath命令与我的xpath命令进行了比较,则xpath是相同的,并且使用firefox选择器到要单击的位置也是如此。
由于其他原因,我必须使用资源管理器(因此我具有资源管理器webdriver等),所以我没有尝试使用python +(用于Firefox的webdriver)运行代码。
代码:
from selenium import webdriver
import time
driver=webdriver.IE("D:\myfolder\IEDriverServer.exe")
driver.implicitly_wait(30)
base_url="https://companywebsite.ext")
driver.get(base_url) #it's ok until now, I can open the webpage
time.sleep(20)
element=driver.find_element_by_xpath("/html/body/div[2]/div/table/tbody/tr[3]")
time.sleep(10)
这是我的问题:
1)为什么我可以在其他网站上做正确的事情,而不是在这个网站上做?
2)为什么Selenium IDE能够做到这一点,并且使用相同的命令却无法在我的python脚本中使用?
3)我必须进行特定的设置吗?
非常感谢您。
答案 0 :(得分:0)
您应该尝试使用wait
:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver=webdriver.IE("D:\myfolder\IEDriverServer.exe")
driver.implicitly_wait(30)
base_url="https://companywebsite.ext")
driver.get(base_url)
wait = WebDriverWait(driver, 10)
element = wait.until(EC.visibility_of_element_located((By.XPATH, "/html/body/div[2]/div/table/tbody/tr[3]")))
希望这会有所帮助!