Q
代碼以由硒
0
A
回答
2
嘗試使用"//a[text()='Create new challenge')]"
1
我強烈建議不要使用YuvarajHK走後路線的XPath。 Xpath很多slower and much less readable than CSS
而是使用CSS。所以這裏的問題是,沒有一個屬性可以與之匹配。在onclick
或href
上匹配並不明智,所以在CSS中只有一個選項。一個選項,我強烈推薦 ...
使用父子層次結構來唯一標識您的元素。
所以,你的元素有一個父親。而不是採取其他答案中給出的xpath,這是非常低效的匹配文本,找到該特定元素的父項。
考慮以下幾點:
<div id="newChallenge">
...
<a onclick="viewmodel.view_results(false);" href="#">Create new challenge</a>
...
</div>
所以第一步是要找到的elemnt的父。如果元素的父元素沒有ID,那沒問題。剛剛上升到另一個級別。
在我們的案例中:我們的父母選擇器是div#newChallenge
,我們鏈接的選擇器只是a
。
我們的CSS選擇器會
div#newChallenge a
(或)
div#newChallenge > a
(取決於如果a
是一個後裔,而不是兒童的)
此外,如果你有多個鏈接:
<div id="newChallenge">
<a href="someOtherPage.html">Hi</a>
<a onclick="viewmodel.view_results(false);" href="#">Create new challenge</a>
<a onclick="viewmodel.view_results(false);" href="#">Create something else</a>
</div>
您可以看到我們的選擇器div#newChallenge a
不會唯一標識我們的元素。相反,我們可以找到鏈接的索引。在這種情況下,我們要選擇的鏈接的索引是2
,因爲...
<div id="newChallenge">
(1) <a href="someOtherPage.html">Hi</a>
-> (2) <a onclick="viewmodel.view_results(false);" href="#">Create new challenge</a>
(3) <a onclick="viewmodel.view_results(false);" href="#">Create something else</a>
</div>
然後,我們可以只追加CSS僞類:nth-of-type
(甚至其他:nth-*
僞類)
您的最終選擇可能是
div#newChallenge a:nth-of-type(2)
因此得出結論:您將用於查找python中的元素的代碼將爲:
driver.find_elements_by_css_selector('div#newChallenge a:nth-of-type(2)');
0
CSS =一【點擊* = 'viewmodel.view_results(假)']
請讓我知道的是上述CSS選擇器是否工作。
相關問題
- 1. 優化硒代碼
- 2. 發佈硒代碼維護
- 3. 硒測試:HTML與代碼?
- 4. 硒 - TestNG的 - 使用代碼
- 5. 由YouTube代碼
- 6. 批代碼由1
- 7. 排序由代碼
- 8. 如何在硒中爲以下代碼編寫定位器
- 9. 如何簡化此硒/ java代碼以使其正常工作?
- 10. 硒的webdriver - 如何在硒的Java框架代碼
- 11. 拖放不工作在硒代碼
- 12. Python的硒頁面源代碼
- 13. Python硒 - 修改網頁的源代碼
- 14. 機器人代碼不在硒工作
- 15. 硒IDE和php代碼覆蓋
- 16. 硒Python:這段代碼是否正確?
- 17. JavaScript代碼背後的硒「clickAt()」方法?
- 18. Python硒代碼不起作用
- 19. 錯誤硒代碼在URL訪問
- 20. 詠歎調禁用的硒代碼
- 21. 將JUnit代碼轉換爲硒ide HTML
- 22. 獲取org.openqa.selenium.firefox.NotConnectedException在執行硒wedriver代碼
- 23. 硒代碼從excel中獲取數據
- 24. 硒的webdriver錯誤代碼502
- 25. 使用硒在代碼中查找值
- 26. C#代碼覆蓋率與硒
- 27. 硒代碼選擇單選按鈕
- 28. 代碼是沒有得到執行硒
- 29. 由groovy代碼測試的java代碼的代碼覆蓋率
- 30. 當項目包含jQuery代碼以及angularJS代碼時,在angularJS中路由
當我檢查與螢火蟲元素顯示爲創建新的挑戰 – user3053162