我正在尝试找到一个没有ID或其他定位器的用户名字段,我可以使用Selenium Web Driver轻松找到它。
使用Chrome的Inspect Element,此对象的HTML如下
<div aria-hidden="true" style="cursor:text" data-bind="text: hintText, css: hintCss" class="placeholder">someone@example.com</div>
找到此页面对象的最佳方法是什么?
由于
答案 0 :(得分:0)
其中任何一个都应该有效(如果它是此类类型的第一个div
- 元素)
driver.find_element_by_class_name('placeholder')
driver.find_element_by_css_selector('div.placeholder')
driver.find_element_by_xpath("//div[@class='placeholder']")
如果有更多匹配的元素使用方法的find_element s 版本并使用返回列表的索引,则获取所需的元素。
答案 1 :(得分:0)
要 if (fragmentManager.getBackStackEntryCount() >=0) {
getSupportFragmentManager().popBackStackImmediate()
} else {
super.onBackPressed();
}
click()
字段,您可以使用以下任意一行代码:
使用User Name
和class
属性:
text
使用driver.findElement(By.xpath("//div[@class='placeholder' and contains(text(),'someone@example.com')]"));
和class
属性:
aria-hidden
答案 2 :(得分:0)
首先找出你的元素是在不同的框架内。找到iframe,首先切换到iframe,之后您可以使用find_elemet_by_class_name或find_element_by_css_selector或xpath等任何方法找到用户所需的对象。 要切换到框架,请尝试以下代码:
driver.switch_to.frame(driver.find_element_by_id("ID_OF_YOUR_FRAME"))
您也可以从此链接代码中获取对搜索元素的引用: “https://github.com/PrajinkyaPimpalghare/TimeSheet-Automation/blob/master/time_sheet_automation.py”请参阅第94至108行,以不同方式和不同方式访问元素。