使用selenium

时间:2017-06-01 09:18:55

标签: javascript python-3.x extjs selenium-webdriver

目前有几个链接可以帮助完成此任务:general(1)和specific(2)接近。

但是(1)不包含任何开头的代码,(2)只包含js one-liner。

我的问题是如何从extjs生成的行单元格中获取值?

例如,我有行元素

div#ext-gen-list-057-r.x-grid3-row.grid-rowcolor-black.grid-fontweight-normal.grid-fontstyle-normal.recordListRow.TableEvenRow.x-grid3-row-first.x-grid3-row-focus

其中单元格表示为

td.x-grid3-col.x-grid3-cell.x-grid3-td-0.x-grid3-cell-first

如何使用python和selenium webdriver获取它的值?

UPD

经过一番搜索后,透露的细节很少:

  1. browser.find_element(By.ID, 'element-id') document.getElementById('element-id') null Ext.getBody('body-element-id') Select selenium.webdriver.support.ui $message ="Details: Mail Details"; @Override public List<Artikel> find(String judul) { EntityManager em = emf.createEntityManager(); return em.createQuery("from Artikel where judul like %:'"+judul+"'%", Artikel.class).getResultList(); } @Override public void onBackPressed() { super.onBackPressed(); //write your fragment switching code here. } m1<-lm(formula=Sales~Price.Eggs,data=sales.data) m2<-update(m1,.~.+Ad.Type) m3<-update(m2,.~.+Price.Cookies) mtable(m1,m2,m3) ====================================================== m1 m2 m3 ------------------------------------------------------ (Intercept) 115.366*** 101.571*** 137.370*** (10.041) (9.899) (10.834) Price.Eggs -19.286*** -16.643*** -16.118*** (2.263) (2.166) (1.646) Ad.Type: 1/0 4.195** 4.147*** (1.371) (1.040) Price.Cookies -8.711*** (1.901) ------------------------------------------------------ **R-squared 0.7 0.8 0.9 adj. R-squared 0.7 0.8 0.9** sigma 3.9 3.4 2.6 F 72.6 51.8 67.1 p 0.0 0.0 0.0 Log-likelihood -82.5 -78.1 -69.2 Deviance 431.2 320.3 177.2 AIC 171.1 164.2 148.4 BIC 175.3 169.8 155.4 N 30 30 30 ====================================================== public interface IConfigFiles { List<string> Files { get; set; } } public DemoCls(IConfigFiles files) { } public DemoCls() { // does nothing } public void Setup() { string ConfigFolderPath = Path.Combine(Environment.CurrentDirectory, @"\Config"); //... } main __init__.py animal.py (class Animal) sub1 __init__.py cat.py (class Cat) sub2 __init__.py dog.py (class Dog) __init__.py dog.py Animal
  2. 获取Ext页面的正确方法是from animal import Animal
  3. 但是,ImportError: No module named animal 中的dog.py没有允许访问正文元素的方法。

    因此,问题尚未解决。

1 个答案:

答案 0 :(得分:0)

可能是这个示例java代码可以帮到你。它不能直接回答您的问题,但您可以轻松地将其转换为python,并深入了解解决您的问题。

此代码从页面获取extjs网格,遍历其行以检查是否有任何包含示例id的单元格(1010294),然后获取相应的行并单击该行上的第8个单元格。第8个单元格包含一个单击按钮。

WebElement editCustTable = driver.findElement(By.className("x-grid-table"));
List<WebElement> tableRows = editCustTable.findElements(By.tagName("tr"));
for (Iterator iterator = tableRows.iterator(); iterator.hasNext();) {
    WebElement row = (WebElement) iterator.next();              
    // if tr contains id = '1010294'            
    if(row.getAttribute("id").contains("1010294")){
        List<WebElement> tds = row.findElements(By.tagName("td"));
        tds.get(8).click();
        break;
        }       
    }