我在練習Selenium-Webdriver並遇到期望元素(文本)在網頁上可見的問題,但我無法點擊它。無法點擊可見文本但isDisplayed =假
試圖檢查此元素是否顯示或不顯示命令行「isDisplayed」,並且控制檯返回錯誤結果。我有點困惑,網頁上的文字(請參閱附件中的亮點)是可見的,但爲什麼不能點擊?
在這種情況下,我們該如何對它執行一些操作?請你分享一下你的想法和戰略。
非常感謝。
這裏是網頁: http://www.lazada.com.ph/
我的代碼是
System.setProperty("webdriver.chrome.driver", driver_path);
WebDriver driver = new ChromeDriver();
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
driver.get("https://www.lazada.com.ph/");
//Click on Men's Fashion
WebElement loc = driver.findElement(By.xpath("//div[@data-qa-locator='brands-by-category-cats-item']/div[@data-tab-id='2']"));
Actions hover = new Actions(driver);
hover.moveToElement(loc).click().build().perform();
錯誤日誌:
false
Exception in thread "main" org.openqa.selenium.interactions.MoveTargetOutOfBoundsException: (-2114, -93.0999984741211) is out of bounds of viewport width (1366) and height (659)
Build info: version: '3.6.0', revision: '6fbf3ec767', time: '2017-09-27T16:15:26.402Z'
System info: host: 'Lorem', ip: '192.168.30.1', os.name: 'Windows 8.1', os.arch: 'amd64', os.version: '6.3', java.version: '1.8.0_65'
Driver info: org.openqa.selenium.firefox.FirefoxDriver
Capabilities [{moz:profile=C:\Users\Lorem\AppData\Local\Temp\rust_mozprofile.y3xzzu5rD0i5, rotatable=false, timeouts={implicit=0, pageLoad=300000, script=30000}, pageLoadStrategy=normal, moz:headless=false, platform=XP, specificationLevel=0, moz:accessibilityChecks=false, acceptInsecureCerts=true, browserVersion=56.0.2, platformVersion=6.3, moz:processID=4724, browserName=firefox, javascriptEnabled=true, platformName=XP}]
Session ID: 893e64ce-b53c-4bec-9f98-14832e4b7151
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
at org.openqa.selenium.remote.http.W3CHttpResponseCodec.createException(W3CHttpResponseCodec.java:185)
at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:120)
at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:49)
at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:164)
at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:83)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:586)
at org.openqa.selenium.remote.RemoteWebDriver.perform(RemoteWebDriver.java:652)
at org.openqa.selenium.interactions.Actions$BuiltAction.perform(Actions.java:638)
at basic.Wait.main(Wait.java:41)
感謝@DebanjanB,它可以在Chrome和Firefor上使用。我只是有一個小問題,那就是涉及到屏幕尺寸的視口,通常描述的是UI在桌面上的樣子,手機,平板電腦的視圖;但它也與DEsktop視圖上的元素的可見性有關係,請給我看看關於它的一些文章或知識? 此外,使用javascriptexecutor也可以幫助您;但從測試人員的角度來看,有什麼建議使用它嗎? 謝謝。 – LearningandWorking
這[**'Discussion/QA' **](https://stackoverflow.com/questions/44912203/selenium-web- driver-java-element-is-not-clickable-at-point-36-72-other-el/44916498#44916498)將會清除你的許多查詢,讓我知道你是否有任何問題。 'UPV ote' **任何答案,如果他們對你有用。 – DebanjanB