web-dev-qa-db-ja.com

Selenium Webdriverを使用してタグ名で要素を見つけることができるタイミングと方法は?例で説明してください

Seleniumでのテスト中に要素ロケーターのほとんどを使用しましたが、非常に低い頻度で使用される 'TagName'ロケーターです。例を挙げてください。

9
Santosh

ここで、ソフトウェアWeb要素にIDまたはクラス名がない場合、Selenium WebDriverでその要素を見つける方法は?答えは、Selenium WebDriver要素ロケーターには多くの選択肢があり、そのうちの1つはタグ名で要素を見つけることです。

ほとんどの場合、要素ロケーターの他の選択肢があるため、タグ名による要素の検索はあまり一般的ではありません。ただし、他に選択肢がない場合は、要素のDOMタグ名を使用してwebdriverでその要素を見つけることができます。

enter image description here

ここでは、次のようなロケーターとしてタグ名を選択できます。

//Locating element by tagName and store its text in variable dropdown.
 String dropdown = driver.findElement(By.tagName("select")).getText();
11
Shah

アンカー、テーブル、およびのようなタグの実際の名前を使用します。これは、指定されたタグ名を持つすべての要素を取得するのに役立ちます。例:指定された入力の最初の要素を選択するには

var dialog = driver.FindElement(By.ClassName("ladialog"));
var save = dialog.FindElements(By.TagName("input"))[0];
save.Click();
3
Dawit Reda

By.tagNameの非推奨 のおかげで、@ Shahの回答にはBy.cssを使用する必要があります。

String dropdown = driver.findElement(By.css("select")).getText();
0
JGleason

また、重要なことは、tagNameロケーティング戦略を使用して、Webページ内のすべてのリンクを取得または取得し、それらをコンソールに印刷できることです。これを試して:

//GET ALL LINKS IN A WEBPAGE
List<WebElement> allLinks = driver.findElements(By.tagName("a"));
System.out.println("Links count is: "+allLinks.size());
for(WebElement link : allLinks)
System.out.println(link.getText());
0
user7123229