2013-03-19 14 views
33
私は、このような .getSize()を提供しています org.openqa.selenium.Dimension、および getLocation()org.openqa.selenium.PointとしてセレンのためのさまざまなJavaライブラリを介して、要素の画面位置や寸法を取得するためのメソッドがあることがわかり

で座標または要素の寸法を取得します。セレン:Pythonの

Selenium Pythonバインディングで要素の位置または寸法を取得する方法はありますか?

答えて

54

ありがとうございました!手がかりはhttps://seleniumhq.github.io/selenium/docs/api/py/webdriver_remote/selenium.webdriver.remote.webelement.html

WebElementsには.size.locationというプロパティがあります。どちらもタイプdictです。

driver = webdriver.Firefox() 
e = driver.find_element_by_xpath("//someXpath") 
location = e.location 
size = e.size 
print(location) 
print(size) 

戻り値:

{'y': 202, 'x': 165} 
{'width': 77, 'height': 22} 

彼らはまた、dictそのものであり、要素のsizelocationが含まれていrectと呼ばれる性質を持っています。

+0

これをC#でどのように実現するには?私は、要素の境界を取得し、いくつかの計算を行い、その要素のx、y座標を使用してクリックしたいと思います。 – rahoolm

+0

@rahoolm 'e.click()'を実行するだけで、セレニウムがそれをクリックします。 –

+1

これらの座標は何を意味しますか?少なくとも私のマシンでは、画面上の要素の位置とは異なります。彼らはブラウザのウィンドウサイズに相対的ですか? –