Selenium webdriver 按第一位查找文本

Selenium webdriver find texy by first digits

我在查找具有特定未知 ID 的元素时遇到问题。我只知道它会从实际日期开始,例如今天 '201511276745476574865746375d'。 (最后总是一个字母)

在 SQL 中,我会通过写“20151127%”找到它,但它在 Selenium webdriver 中不起作用:(

编辑: 我使用java,我需要点击按钮,其中有代码:

<input name="removeCatalog" id="20151130081807817d" class="buttons buttonShort alignCenter" value="Delete" onclick="removeCatalogFromCatalogList('20151130081807817','Do you want to remove it?')" type="submit">

我尝试使用 SQL 代码来查找 ID,但我意识到 webdriver 并不总是与数据库连接(我不能那样做)。

我试图找到包含 "Catalog selenium" 关键字的行,但没有成功: driver.findElement(By.xpath("//table[@id='GridView']/tbody/tr[td[text() ='catalog selenium']]/td[8]/input")).click();

你可以试试

driver.find_elements_by_xpath("//*[contains(text(), '20151127')]")

要查找具有以 20151127 开头的 id 属性的元素,您可以使用以下 XPath:

//*[starts-with(@id, '20151127')]

我建议使用实际标签名称(div、td 等)代替示例中给出的星号。

由于我不确定您使用的是哪种编程语言,我将继续使用 C#。 如果您确定您的 ID 是从当天开始的,那么要获得一个通用的解决方案,您可以:

driver.FindElement(By.Xpath(".//*[starts-with(@id, '" + System.DateTime.Now.ToString("yyyyMMdd") + "')]"));