По моей рекомендации вы можете использовать Chropath , который является расширением для браузера Chrome.Chropath попытается найти подходящий xpath, затем попытайтесь использовать его
Подробнее и загрузить по адресу: https://chrome.google.com/webstore/detail/chropath/ljngjbnaijcbncmcnjfhigebomdlkcjo?hl=en
Если вы не можете выполнить щелчок, попробуйте использовать JS, см. Ниже.
Вы можете использовать JS для выполнения действия клика.[Вот метод для C #, но он почти такой же, как Java].
public static void scrollElementToClick(IWebDriver driver, IWebElement element)
{
IJavaScriptExecutor ex = (IJavaScriptExecutor)driver;
ex.ExecuteScript("arguments[0].click();", element);
}
Другие вещи, по которым нельзя щелкнуть по элементу, могут исходить от элемента, который представлен на странице, но не готов к щелчку [clickable].Поэтому вы можете попытаться использовать wait , который предоставляется для ожидания элемента, прежде чем щелкнуть действие
Если вы не можете сделать это, попробуйте использовать это, чтобы проверить, когда вы хотите выполнить какое-либо действиек этому элементу.(Этот код используется для C #, но я думаю, что у вас может быть идея):
public static bool existsElement(IWebDriver _driver,By by,int waitBySecond)
{
WebDriverWait wait = new WebDriverWait(_driver, new TimeSpan(0, 0,waitBySecond));
try
{
// wait[wait.until] for element or search element [driver.FindElement]
}
catch (WebDriverTimeoutException e)
{
// Timeout that set for finding element
return false;
}
catch(NoSuchElementException e)
{
// there is no element in this page
return false;
}
catch(Exception e)
{ return false;
}
return true;
}
В: Знаете ли вы, как я могу нажать на параметры сортировки и выбрать TOP из списка, используя Selenium?
A: Вот некоторые варианты выбора, которые вы можете применить к нему
SelectElement changeOwnerMethodSelectedUser = new
SelectElement(_driver.FindElement(By.Name("selectedUser")));
// then select one choice from options by text appearance
changeOwnerMethodSelectedUser.SelectByText("Choice1");
// or you might choose by index like this [ Recommended - If you want to select choice by Top option]
changeOwnerMethodSelectedUser.SelectByIndex(3);
Примечание. Весь этот исходный код используется для C #.Пожалуйста, измените синтаксис на Java, прежде чем тестировать его.