FindElementsBy.Xpath在linux中不起作用



我有5个元素,我想获得1第一个元素并点击它。当我在windows上尝试我的代码时,我可以获得所有元素,它正在工作,我可以点击该元素并下载excel1。但是,当我将代码推送到Linux时,它在我的link中不起作用,返回null。我如何点击它。

我的代码:

var link = driver.FindElements(By.XPath("//div[@class='mt-3 mb-3 w-100 border-bottom']")); //i can not get my elements on linux
link[1].Click(); 

和我的元素

<div>
<div class="mt-3 mb-3 w-100 border-bottom" style="padding-left: 1%; padding-right: 1%;"><a class="text-secondary" style="font-size: 1.2rem; color: #0c0c0c; cursor: pointer;"><span style="font-weight: bold;">Table-1</span> click download for excel0</a></div>
<div class="mt-3 mb-3 w-100 border-bottom" style="padding-left: 1%; padding-right: 1%;"><a class="text-secondary" style="font-size: 1.2rem; color: #0c0c0c; cursor: pointer;"><span style="font-weight: bold;">Table-2</span> click download for excel1</a></div>
<div class="mt-3 mb-3 w-100 border-bottom" style="padding-left: 1%; padding-right: 1%;"><a class="text-secondary" style="font-size: 1.2rem; color: #0c0c0c; cursor: pointer;"><span style="font-weight: bold;">Table-3</span> click download for excel2</a></div>
<div class="mt-3 mb-3 w-100 border-bottom" style="padding-left: 1%; padding-right: 1%;"><a class="text-secondary" style="font-size: 1.2rem; color: #0c0c0c; cursor: pointer;"><span style="font-weight: bold;">Table-4</span> click download for excel3</a></div>
<div class="mt-3 mb-3 w-100 border-bottom" style="padding-left: 1%; padding-right: 1%;"><a class="text-secondary" style="font-size: 1.2rem; color: #0c0c0c; cursor: pointer;"><span style="font-weight: bold;">Table-5</span> click download for excel4</a></div>
</div>

在访问这些元素之前可能会错过一个延迟
要检查此问题,只需在之前延迟几秒钟

var link = driver.FindElements(By.XPath("//div[@class='mt-3 mb-3 w-100 border-bottom']")); //i can not get my elements on linux

行。如果它解决了问题,请使用WebDriverWait预期条件显式等待,而不是硬编码的暂停,以使代码变得更好。

最新更新