在selenium中,如果我们在脚本中添加隐式(10sec)和显式等待(5sec),那么哪个等待适用于元素

时间:2017-11-07 12:02:43

标签: selenium

我想知道,在selenium中,如果我们同时添加implicit(10sec)和。{ 在脚本中显式wait(5sec)然后哪个等待适用于元素

3 个答案:

答案 0 :(得分:0)

Documentation明确提到:

  

请勿混用explicitunpredictable wait times等。这样做会导致 implicit wait

     

例如,设置10 explicit wait 秒和15 20 秒,可能会导致在 <ListView Name="listViewItem" ClipToBounds="True" VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch" SizeChanged="ListView_SizeChanged" TextOptions.TextHintingMode="Animated" Margin="0,0,117,0"> <ListView.View> <GridView AllowsColumnReorder="False"> <GridViewColumn Header="Task ID" Width="0"> <GridViewColumn.CellTemplate> <DataTemplate> <TextBlock Text="{Binding TaskID}" TextWrapping="Wrap" /> </DataTemplate> </GridViewColumn.CellTemplate> </GridViewColumn> <GridViewColumn Header="Tast Title" Width="150"> <GridViewColumn.CellTemplate> <DataTemplate> <TextBlock Text="{Binding TaskTitle}" TextWrapping="Wrap" /> </DataTemplate> </GridViewColumn.CellTemplate> </GridViewColumn> <GridViewColumn Header="Task Deadline" Width="275"> <GridViewColumn.CellTemplate> <DataTemplate> <TextBlock Text="{Binding TaskDeadline}" TextWrapping="Wrap" /> </DataTemplate> </GridViewColumn.CellTemplate> </GridViewColumn> <GridViewColumn Header="Task Group" Width="150"> <GridViewColumn.CellTemplate> <DataTemplate> <TextBlock Text="{Binding TaskGroup}" TextWrapping="Wrap" /> </DataTemplate> </GridViewColumn.CellTemplate> </GridViewColumn> <GridViewColumn Header="Task Contact" Width="200"> <GridViewColumn.CellTemplate> <DataTemplate> <TextBlock Text="{Binding TaskContact}" TextWrapping="Wrap" /> </DataTemplate> </GridViewColumn.CellTemplate> </GridViewColumn> <GridViewColumn Header="Task Workers" Width="200"> <GridViewColumn.CellTemplate> <DataTemplate> <TextBlock Text="{Binding TaskWorkers}" TextWrapping="Wrap" /> </DataTemplate> </GridViewColumn.CellTemplate> </GridViewColumn> </GridView> </ListView.View> </ListView> 秒后发生超时。

答案 1 :(得分:0)

使用显式或隐式等待,不要同时使用两者

如果你同时使用

我们的webdriver首先将遵循隐式等待,然后遵循显式等待,因为由于单线程使用,浏览器行为将像其他编程语言一样顺序。

明确和隐含等待 在继续下一步之前,等待使自动化任务执行经过一定时间。您应该选择使用显式等待或隐式等待。

**

  

警告:不要混合隐式和显式等待。这样做可能会导致   不可预测的等待时间。例如,设置隐式等待10   秒和显式等待15秒,可能导致超时   20秒后发生。

**

阅读Selnium DOC

答案 2 :(得分:0)

如果确实需要显式等待(即等到元素变为可点击,不可见等),则需要在显式等待上方添加以下代码。

driver.manage().timeouts().implicitlyWait(0);

完成显式等待后,将隐式等待恢复为更多元素所需的等待时间。这样可以避免隐式和显式等待的累积等待时间。