为什么我的Selenium IDE可以正常工作而同一个python命令却不能正常工作?

时间:2018-09-16 09:28:35

标签: python selenium internet-explorer selenium-webdriver

在我公司的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)我必须进行特定的设置吗?

非常感谢您。

1 个答案:

答案 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]")))

希望这会有所帮助!