问题描述
我在脚本的两个不同位置使用webdriverwait,每次语法都相同;第一次使用它只是为了查看我是否有错字-这是在一个类下定义的,第二次是在该类下的函数下定义的。即使语法相同,也会弹出错误提示。请参考下面的代码。
element = webdriverwait(self.driver,self.timeout).until(
EC.presence_of_element_located((By.XPATH,'//div[starts-with(@class,"bill-summary-total")]//div[contains(@data-ng-bind-html,"vm.productList.totalAmt")]')))
print('Your element is: {}'.format(element.text))
def pay(self):
time.sleep(10)
print('You are at this step')
element = webdriverwait(self.driver,7).until(
EC.presence_of_element_located((By.XPATH,"vm.productList.totalAmt")]')))
print('Your element is: {}'.format(element.text))
在所附图片1中,第2步在print('You are at this step').
之后停了下来
错误:
raise TimeoutException(message,screen,stacktrace) selenium.common.exceptions.TimeoutException: Message:
解决方法
问题通过以下代码解决:
timeout = self.timeout
time.sleep(10)
element = WebDriverWait(self.driver,self.timeout).until(
EC.presence_of_element_located((By.XPATH,'//div[starts-with(@class,"bill-summary-total")]//div[contains(@data-ng-bind-html,"vm.productList.totalAmt")]')))
print('Your element is: {}'.format(element.text))
错误是由于未在代码中稍后使用self.time之前将self.timeout分配给变量(在这种情况下为超时)。